﻿2026-06-16T09:36:12.2439711Z ##[group]Run ./traceable-reqs check --json
2026-06-16T09:36:12.2440388Z [36;1m./traceable-reqs check --json[0m
2026-06-16T09:36:12.2453486Z shell: /usr/bin/bash -e {0}
2026-06-16T09:36:12.2453958Z ##[endgroup]
2026-06-16T09:36:12.3005662Z {
2026-06-16T09:36:12.3006443Z   "schemaVersion": 1,
2026-06-16T09:36:12.3006906Z   "summary": {
2026-06-16T09:36:12.3007972Z     "requirementCount": 213,
2026-06-16T09:36:12.3008681Z     "completeCount": 213,
2026-06-16T09:36:12.3009453Z     "incompleteCount": 0,
2026-06-16T09:36:12.3010078Z     "findingCount": 0
2026-06-16T09:36:12.3010654Z   },
2026-06-16T09:36:12.3011164Z   "requirements": [
2026-06-16T09:36:12.3011640Z     {
2026-06-16T09:36:12.3012076Z       "id": "REQ-API-1",
2026-06-16T09:36:12.3012904Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-16T09:36:12.3014004Z       "requiredStages": [
2026-06-16T09:36:12.3014652Z         "impl",
2026-06-16T09:36:12.3015248Z         "unit",
2026-06-16T09:36:12.3015847Z         "int"
2026-06-16T09:36:12.3016627Z       ],
2026-06-16T09:36:12.3017275Z       "stages": {
2026-06-16T09:36:12.3017891Z         "doc": {
2026-06-16T09:36:12.3038339Z           "complete": false,
2026-06-16T09:36:12.3039173Z           "evidence": []
2026-06-16T09:36:12.3039620Z         },
2026-06-16T09:36:12.3039942Z         "impl": {
2026-06-16T09:36:12.3040309Z           "complete": true,
2026-06-16T09:36:12.3040790Z           "evidence": [
2026-06-16T09:36:12.3041183Z             {
2026-06-16T09:36:12.3041596Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.3042179Z               "line": 15
2026-06-16T09:36:12.3042564Z             }
2026-06-16T09:36:12.3042883Z           ]
2026-06-16T09:36:12.3043188Z         },
2026-06-16T09:36:12.3043489Z         "int": {
2026-06-16T09:36:12.3043836Z           "complete": true,
2026-06-16T09:36:12.3044284Z           "evidence": [
2026-06-16T09:36:12.3044670Z             {
2026-06-16T09:36:12.3045112Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.3045727Z               "line": 13
2026-06-16T09:36:12.3046155Z             }
2026-06-16T09:36:12.3046489Z           ]
2026-06-16T09:36:12.3046799Z         },
2026-06-16T09:36:12.3047109Z         "unit": {
2026-06-16T09:36:12.3047479Z           "complete": true,
2026-06-16T09:36:12.3047911Z           "evidence": [
2026-06-16T09:36:12.3048293Z             {
2026-06-16T09:36:12.3048689Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.3049389Z               "line": 526
2026-06-16T09:36:12.3049796Z             },
2026-06-16T09:36:12.3050127Z             {
2026-06-16T09:36:12.3050526Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.3051089Z               "line": 564
2026-06-16T09:36:12.3051489Z             },
2026-06-16T09:36:12.3051827Z             {
2026-06-16T09:36:12.3052233Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.3052809Z               "line": 651
2026-06-16T09:36:12.3053214Z             }
2026-06-16T09:36:12.3053538Z           ]
2026-06-16T09:36:12.3053857Z         }
2026-06-16T09:36:12.3054158Z       }
2026-06-16T09:36:12.3054454Z     },
2026-06-16T09:36:12.3054754Z     {
2026-06-16T09:36:12.3055073Z       "id": "REQ-API-2",
2026-06-16T09:36:12.3055852Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-16T09:36:12.3056782Z       "requiredStages": [
2026-06-16T09:36:12.3057207Z         "impl",
2026-06-16T09:36:12.3057541Z         "unit",
2026-06-16T09:36:12.3057889Z         "int"
2026-06-16T09:36:12.3058225Z       ],
2026-06-16T09:36:12.3058520Z       "stages": {
2026-06-16T09:36:12.3058867Z         "doc": {
2026-06-16T09:36:12.3059459Z           "complete": false,
2026-06-16T09:36:12.3059921Z           "evidence": []
2026-06-16T09:36:12.3060502Z         },
2026-06-16T09:36:12.3060951Z         "impl": {
2026-06-16T09:36:12.3061482Z           "complete": true,
2026-06-16T09:36:12.3062106Z           "evidence": [
2026-06-16T09:36:12.3062670Z             {
2026-06-16T09:36:12.3063680Z               "path": "crates/spt-store/src/history.rs",
2026-06-16T09:36:12.3064533Z               "line": 17
2026-06-16T09:36:12.3065095Z             },
2026-06-16T09:36:12.3065572Z             {
2026-06-16T09:36:12.3066184Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.3067247Z               "line": 20
2026-06-16T09:36:12.3067819Z             },
2026-06-16T09:36:12.3068296Z             {
2026-06-16T09:36:12.3068912Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.3069879Z               "line": 142
2026-06-16T09:36:12.3070467Z             },
2026-06-16T09:36:12.3070959Z             {
2026-06-16T09:36:12.3071593Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3072461Z               "line": 24
2026-06-16T09:36:12.3073057Z             },
2026-06-16T09:36:12.3073564Z             {
2026-06-16T09:36:12.3074192Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3075054Z               "line": 41
2026-06-16T09:36:12.3075631Z             },
2026-06-16T09:36:12.3076123Z             {
2026-06-16T09:36:12.3076759Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3077660Z               "line": 209
2026-06-16T09:36:12.3078140Z             },
2026-06-16T09:36:12.3078614Z             {
2026-06-16T09:36:12.3079359Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3080241Z               "line": 251
2026-06-16T09:36:12.3080822Z             },
2026-06-16T09:36:12.3081313Z             {
2026-06-16T09:36:12.3081935Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3082798Z               "line": 330
2026-06-16T09:36:12.3083418Z             },
2026-06-16T09:36:12.3083909Z             {
2026-06-16T09:36:12.3084546Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3085438Z               "line": 393
2026-06-16T09:36:12.3086030Z             },
2026-06-16T09:36:12.3086520Z             {
2026-06-16T09:36:12.3087165Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3088020Z               "line": 432
2026-06-16T09:36:12.3088438Z             },
2026-06-16T09:36:12.3088888Z             {
2026-06-16T09:36:12.3089532Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.3090109Z               "line": 17
2026-06-16T09:36:12.3090515Z             },
2026-06-16T09:36:12.3090834Z             {
2026-06-16T09:36:12.3091234Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.3091807Z               "line": 30
2026-06-16T09:36:12.3092187Z             },
2026-06-16T09:36:12.3092509Z             {
2026-06-16T09:36:12.3092904Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.3093467Z               "line": 63
2026-06-16T09:36:12.3093858Z             },
2026-06-16T09:36:12.3094182Z             {
2026-06-16T09:36:12.3094589Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.3095154Z               "line": 77
2026-06-16T09:36:12.3095545Z             }
2026-06-16T09:36:12.3095860Z           ]
2026-06-16T09:36:12.3096170Z         },
2026-06-16T09:36:12.3096761Z         "int": {
2026-06-16T09:36:12.3097119Z           "complete": true,
2026-06-16T09:36:12.3097547Z           "evidence": [
2026-06-16T09:36:12.3097932Z             {
2026-06-16T09:36:12.3098364Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.3099157Z               "line": 14
2026-06-16T09:36:12.3099551Z             },
2026-06-16T09:36:12.3099885Z             {
2026-06-16T09:36:12.3100313Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.3100969Z               "line": 187
2026-06-16T09:36:12.3101574Z             }
2026-06-16T09:36:12.3102061Z           ]
2026-06-16T09:36:12.3102538Z         },
2026-06-16T09:36:12.3103145Z         "unit": {
2026-06-16T09:36:12.3103689Z           "complete": true,
2026-06-16T09:36:12.3104333Z           "evidence": [
2026-06-16T09:36:12.3105281Z             {
2026-06-16T09:36:12.3106153Z               "path": "crates/spt-store/src/history.rs",
2026-06-16T09:36:12.3107001Z               "line": 82
2026-06-16T09:36:12.3107813Z             },
2026-06-16T09:36:12.3108309Z             {
2026-06-16T09:36:12.3108939Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.3110173Z               "line": 279
2026-06-16T09:36:12.3110755Z             },
2026-06-16T09:36:12.3111248Z             {
2026-06-16T09:36:12.3111907Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3112837Z               "line": 705
2026-06-16T09:36:12.3113435Z             },
2026-06-16T09:36:12.3113935Z             {
2026-06-16T09:36:12.3114578Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3115465Z               "line": 716
2026-06-16T09:36:12.3116072Z             },
2026-06-16T09:36:12.3116574Z             {
2026-06-16T09:36:12.3117228Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3118119Z               "line": 869
2026-06-16T09:36:12.3118718Z             },
2026-06-16T09:36:12.3119309Z             {
2026-06-16T09:36:12.3119972Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3120878Z               "line": 915
2026-06-16T09:36:12.3121500Z             },
2026-06-16T09:36:12.3121994Z             {
2026-06-16T09:36:12.3122619Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.3123492Z               "line": 143
2026-06-16T09:36:12.3124091Z             },
2026-06-16T09:36:12.3124589Z             {
2026-06-16T09:36:12.3125195Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.3126058Z               "line": 187
2026-06-16T09:36:12.3126669Z             }
2026-06-16T09:36:12.3127177Z           ]
2026-06-16T09:36:12.3127645Z         }
2026-06-16T09:36:12.3128112Z       }
2026-06-16T09:36:12.3128561Z     },
2026-06-16T09:36:12.3129074Z     {
2026-06-16T09:36:12.3129555Z       "id": "REQ-API-3",
2026-06-16T09:36:12.3130427Z       "title": "commune/signoff are file-drops, not commands",
2026-06-16T09:36:12.3131481Z       "requiredStages": [
2026-06-16T09:36:12.3131965Z         "impl",
2026-06-16T09:36:12.3132311Z         "unit",
2026-06-16T09:36:12.3132640Z         "int"
2026-06-16T09:36:12.3132984Z       ],
2026-06-16T09:36:12.3133303Z       "stages": {
2026-06-16T09:36:12.3133657Z         "doc": {
2026-06-16T09:36:12.3134010Z           "complete": false,
2026-06-16T09:36:12.3134447Z           "evidence": []
2026-06-16T09:36:12.3135017Z         },
2026-06-16T09:36:12.3135336Z         "impl": {
2026-06-16T09:36:12.3135704Z           "complete": true,
2026-06-16T09:36:12.3136137Z           "evidence": [
2026-06-16T09:36:12.3136510Z             {
2026-06-16T09:36:12.3136929Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.3137505Z               "line": 27
2026-06-16T09:36:12.3137891Z             },
2026-06-16T09:36:12.3138210Z             {
2026-06-16T09:36:12.3138634Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3139345Z               "line": 562
2026-06-16T09:36:12.3139745Z             }
2026-06-16T09:36:12.3140062Z           ]
2026-06-16T09:36:12.3140367Z         },
2026-06-16T09:36:12.3140667Z         "int": {
2026-06-16T09:36:12.3141026Z           "complete": true,
2026-06-16T09:36:12.3141459Z           "evidence": [
2026-06-16T09:36:12.3141840Z             {
2026-06-16T09:36:12.3142275Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.3142885Z               "line": 261
2026-06-16T09:36:12.3143277Z             }
2026-06-16T09:36:12.3143592Z           ]
2026-06-16T09:36:12.3143888Z         },
2026-06-16T09:36:12.3144198Z         "unit": {
2026-06-16T09:36:12.3144575Z           "complete": true,
2026-06-16T09:36:12.3144997Z           "evidence": [
2026-06-16T09:36:12.3145366Z             {
2026-06-16T09:36:12.3145786Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.3146367Z               "line": 280
2026-06-16T09:36:12.3146760Z             },
2026-06-16T09:36:12.3147235Z             {
2026-06-16T09:36:12.3147675Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3148264Z               "line": 944
2026-06-16T09:36:12.3148656Z             }
2026-06-16T09:36:12.3149242Z           ]
2026-06-16T09:36:12.3149547Z         }
2026-06-16T09:36:12.3149828Z       }
2026-06-16T09:36:12.3150119Z     },
2026-06-16T09:36:12.3150398Z     {
2026-06-16T09:36:12.3150704Z       "id": "REQ-ARCH-1",
2026-06-16T09:36:12.3151227Z       "title": "Many small acyclically-layered crates",
2026-06-16T09:36:12.3151842Z       "requiredStages": [
2026-06-16T09:36:12.3152248Z         "impl"
2026-06-16T09:36:12.3152577Z       ],
2026-06-16T09:36:12.3152878Z       "stages": {
2026-06-16T09:36:12.3153219Z         "doc": {
2026-06-16T09:36:12.3153580Z           "complete": false,
2026-06-16T09:36:12.3154018Z           "evidence": []
2026-06-16T09:36:12.3154395Z         },
2026-06-16T09:36:12.3154695Z         "impl": {
2026-06-16T09:36:12.3155063Z           "complete": true,
2026-06-16T09:36:12.3155497Z           "evidence": [
2026-06-16T09:36:12.3155856Z             {
2026-06-16T09:36:12.3156255Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-16T09:36:12.3156804Z               "line": 18
2026-06-16T09:36:12.3157195Z             },
2026-06-16T09:36:12.3157515Z             {
2026-06-16T09:36:12.3157935Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-16T09:36:12.3158501Z               "line": 12
2026-06-16T09:36:12.3158886Z             },
2026-06-16T09:36:12.3159330Z             {
2026-06-16T09:36:12.3159750Z               "path": "crates/spt-store/src/lib.rs",
2026-06-16T09:36:12.3160303Z               "line": 12
2026-06-16T09:36:12.3160674Z             }
2026-06-16T09:36:12.3183619Z           ]
2026-06-16T09:36:12.3183953Z         },
2026-06-16T09:36:12.3184258Z         "int": {
2026-06-16T09:36:12.3184625Z           "complete": false,
2026-06-16T09:36:12.3185069Z           "evidence": []
2026-06-16T09:36:12.3185455Z         },
2026-06-16T09:36:12.3185765Z         "unit": {
2026-06-16T09:36:12.3186128Z           "complete": false,
2026-06-16T09:36:12.3186561Z           "evidence": []
2026-06-16T09:36:12.3186952Z         }
2026-06-16T09:36:12.3187248Z       }
2026-06-16T09:36:12.3187541Z     },
2026-06-16T09:36:12.3187827Z     {
2026-06-16T09:36:12.3188137Z       "id": "REQ-ARCH-2",
2026-06-16T09:36:12.3188790Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-16T09:36:12.3189720Z       "requiredStages": [
2026-06-16T09:36:12.3190134Z         "impl"
2026-06-16T09:36:12.3190467Z       ],
2026-06-16T09:36:12.3190772Z       "stages": {
2026-06-16T09:36:12.3191111Z         "doc": {
2026-06-16T09:36:12.3191459Z           "complete": false,
2026-06-16T09:36:12.3191903Z           "evidence": []
2026-06-16T09:36:12.3192284Z         },
2026-06-16T09:36:12.3192583Z         "impl": {
2026-06-16T09:36:12.3192939Z           "complete": true,
2026-06-16T09:36:12.3193358Z           "evidence": [
2026-06-16T09:36:12.3193749Z             {
2026-06-16T09:36:12.3194169Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-16T09:36:12.3194737Z               "line": 18
2026-06-16T09:36:12.3195124Z             }
2026-06-16T09:36:12.3195450Z           ]
2026-06-16T09:36:12.3195753Z         },
2026-06-16T09:36:12.3196064Z         "int": {
2026-06-16T09:36:12.3196426Z           "complete": false,
2026-06-16T09:36:12.3196869Z           "evidence": []
2026-06-16T09:36:12.3197251Z         },
2026-06-16T09:36:12.3197556Z         "unit": {
2026-06-16T09:36:12.3197931Z           "complete": false,
2026-06-16T09:36:12.3198373Z           "evidence": []
2026-06-16T09:36:12.3198749Z         }
2026-06-16T09:36:12.3199111Z       }
2026-06-16T09:36:12.3199402Z     },
2026-06-16T09:36:12.3199693Z     {
2026-06-16T09:36:12.3200003Z       "id": "REQ-ARCH-3",
2026-06-16T09:36:12.3200759Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-16T09:36:12.3201624Z       "requiredStages": [
2026-06-16T09:36:12.3202224Z         "impl",
2026-06-16T09:36:12.3202563Z         "unit"
2026-06-16T09:36:12.3202877Z       ],
2026-06-16T09:36:12.3203185Z       "stages": {
2026-06-16T09:36:12.3203519Z         "doc": {
2026-06-16T09:36:12.3203890Z           "complete": false,
2026-06-16T09:36:12.3204438Z           "evidence": []
2026-06-16T09:36:12.3204824Z         },
2026-06-16T09:36:12.3205134Z         "impl": {
2026-06-16T09:36:12.3205506Z           "complete": true,
2026-06-16T09:36:12.3205929Z           "evidence": [
2026-06-16T09:36:12.3206308Z             {
2026-06-16T09:36:12.3206748Z               "path": "crates/spt-proto/src/version.rs",
2026-06-16T09:36:12.3207339Z               "line": 34
2026-06-16T09:36:12.3207710Z             },
2026-06-16T09:36:12.3208020Z             {
2026-06-16T09:36:12.3208462Z               "path": "crates/spt-proto/src/version.rs",
2026-06-16T09:36:12.3209201Z               "line": 41
2026-06-16T09:36:12.3209581Z             }
2026-06-16T09:36:12.3209900Z           ]
2026-06-16T09:36:12.3210206Z         },
2026-06-16T09:36:12.3210498Z         "int": {
2026-06-16T09:36:12.3210850Z           "complete": false,
2026-06-16T09:36:12.3211287Z           "evidence": []
2026-06-16T09:36:12.3211663Z         },
2026-06-16T09:36:12.3215108Z         "unit": {
2026-06-16T09:36:12.3215567Z           "complete": true,
2026-06-16T09:36:12.3216004Z           "evidence": [
2026-06-16T09:36:12.3216385Z             {
2026-06-16T09:36:12.3216840Z               "path": "crates/spt-proto/src/version.rs",
2026-06-16T09:36:12.3217445Z               "line": 51
2026-06-16T09:36:12.3217828Z             },
2026-06-16T09:36:12.3218152Z             {
2026-06-16T09:36:12.3218599Z               "path": "crates/spt-proto/src/version.rs",
2026-06-16T09:36:12.3219278Z               "line": 71
2026-06-16T09:36:12.3219654Z             },
2026-06-16T09:36:12.3219984Z             {
2026-06-16T09:36:12.3220423Z               "path": "crates/spt-proto/src/version.rs",
2026-06-16T09:36:12.3221019Z               "line": 83
2026-06-16T09:36:12.3221401Z             }
2026-06-16T09:36:12.3221716Z           ]
2026-06-16T09:36:12.3222015Z         }
2026-06-16T09:36:12.3222353Z       }
2026-06-16T09:36:12.3222635Z     },
2026-06-16T09:36:12.3222911Z     {
2026-06-16T09:36:12.3223226Z       "id": "REQ-ARCH-4",
2026-06-16T09:36:12.3223913Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-16T09:36:12.3224695Z       "requiredStages": [
2026-06-16T09:36:12.3225104Z         "impl",
2026-06-16T09:36:12.3225429Z         "unit"
2026-06-16T09:36:12.3225744Z       ],
2026-06-16T09:36:12.3226049Z       "stages": {
2026-06-16T09:36:12.3226393Z         "doc": {
2026-06-16T09:36:12.3226756Z           "complete": false,
2026-06-16T09:36:12.3227191Z           "evidence": []
2026-06-16T09:36:12.3227577Z         },
2026-06-16T09:36:12.3227887Z         "impl": {
2026-06-16T09:36:12.3228258Z           "complete": true,
2026-06-16T09:36:12.3228674Z           "evidence": [
2026-06-16T09:36:12.3229126Z             {
2026-06-16T09:36:12.3229554Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3230125Z               "line": 165
2026-06-16T09:36:12.3230505Z             },
2026-06-16T09:36:12.3230815Z             {
2026-06-16T09:36:12.3231241Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3231807Z               "line": 188
2026-06-16T09:36:12.3232190Z             },
2026-06-16T09:36:12.3232526Z             {
2026-06-16T09:36:12.3232951Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3233524Z               "line": 208
2026-06-16T09:36:12.3233909Z             },
2026-06-16T09:36:12.3234219Z             {
2026-06-16T09:36:12.3234628Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3235199Z               "line": 223
2026-06-16T09:36:12.3235584Z             },
2026-06-16T09:36:12.3235903Z             {
2026-06-16T09:36:12.3236323Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3236905Z               "line": 273
2026-06-16T09:36:12.3237510Z             }
2026-06-16T09:36:12.3237827Z           ]
2026-06-16T09:36:12.3238132Z         },
2026-06-16T09:36:12.3238433Z         "int": {
2026-06-16T09:36:12.3238790Z           "complete": false,
2026-06-16T09:36:12.3239391Z           "evidence": []
2026-06-16T09:36:12.3239763Z         },
2026-06-16T09:36:12.3240067Z         "unit": {
2026-06-16T09:36:12.3240426Z           "complete": true,
2026-06-16T09:36:12.3240847Z           "evidence": [
2026-06-16T09:36:12.3241210Z             {
2026-06-16T09:36:12.3241623Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3242183Z               "line": 334
2026-06-16T09:36:12.3242572Z             },
2026-06-16T09:36:12.3242892Z             {
2026-06-16T09:36:12.3243301Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3243865Z               "line": 344
2026-06-16T09:36:12.3244249Z             },
2026-06-16T09:36:12.3244569Z             {
2026-06-16T09:36:12.3244985Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3245567Z               "line": 355
2026-06-16T09:36:12.3245954Z             },
2026-06-16T09:36:12.3246273Z             {
2026-06-16T09:36:12.3246698Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3247299Z               "line": 366
2026-06-16T09:36:12.3247684Z             },
2026-06-16T09:36:12.3248013Z             {
2026-06-16T09:36:12.3248430Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3249078Z               "line": 378
2026-06-16T09:36:12.3249474Z             },
2026-06-16T09:36:12.3249789Z             {
2026-06-16T09:36:12.3250214Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3250765Z               "line": 391
2026-06-16T09:36:12.3251145Z             },
2026-06-16T09:36:12.3251474Z             {
2026-06-16T09:36:12.3251893Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3252461Z               "line": 402
2026-06-16T09:36:12.3252837Z             },
2026-06-16T09:36:12.3253161Z             {
2026-06-16T09:36:12.3253580Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3254143Z               "line": 419
2026-06-16T09:36:12.3254533Z             },
2026-06-16T09:36:12.3254867Z             {
2026-06-16T09:36:12.3255283Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.3255838Z               "line": 547
2026-06-16T09:36:12.3256218Z             }
2026-06-16T09:36:12.3256533Z           ]
2026-06-16T09:36:12.3256829Z         }
2026-06-16T09:36:12.3257114Z       }
2026-06-16T09:36:12.3257400Z     },
2026-06-16T09:36:12.3257691Z     {
2026-06-16T09:36:12.3257992Z       "id": "REQ-CLI-1",
2026-06-16T09:36:12.3261490Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-16T09:36:12.3264923Z       "requiredStages": [
2026-06-16T09:36:12.3265323Z         "impl",
2026-06-16T09:36:12.3265647Z         "unit"
2026-06-16T09:36:12.3265961Z       ],
2026-06-16T09:36:12.3266262Z       "stages": {
2026-06-16T09:36:12.3266602Z         "doc": {
2026-06-16T09:36:12.3266959Z           "complete": false,
2026-06-16T09:36:12.3267384Z           "evidence": []
2026-06-16T09:36:12.3267761Z         },
2026-06-16T09:36:12.3268062Z         "impl": {
2026-06-16T09:36:12.3268420Z           "complete": true,
2026-06-16T09:36:12.3268847Z           "evidence": [
2026-06-16T09:36:12.3269280Z             {
2026-06-16T09:36:12.3269669Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3270189Z               "line": 225
2026-06-16T09:36:12.3270556Z             },
2026-06-16T09:36:12.3270875Z             {
2026-06-16T09:36:12.3271273Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3271919Z               "line": 1034
2026-06-16T09:36:12.3272318Z             },
2026-06-16T09:36:12.3272637Z             {
2026-06-16T09:36:12.3273023Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3273638Z               "line": 1562
2026-06-16T09:36:12.3274024Z             },
2026-06-16T09:36:12.3274334Z             {
2026-06-16T09:36:12.3274714Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3275249Z               "line": 2849
2026-06-16T09:36:12.3275634Z             }
2026-06-16T09:36:12.3275949Z           ]
2026-06-16T09:36:12.3276255Z         },
2026-06-16T09:36:12.3276555Z         "int": {
2026-06-16T09:36:12.3276916Z           "complete": false,
2026-06-16T09:36:12.3277339Z           "evidence": []
2026-06-16T09:36:12.3277716Z         },
2026-06-16T09:36:12.3278016Z         "unit": {
2026-06-16T09:36:12.3278364Z           "complete": true,
2026-06-16T09:36:12.3278783Z           "evidence": [
2026-06-16T09:36:12.3279203Z             {
2026-06-16T09:36:12.3279585Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3280110Z               "line": 6880
2026-06-16T09:36:12.3280496Z             }
2026-06-16T09:36:12.3280806Z           ]
2026-06-16T09:36:12.3281107Z         }
2026-06-16T09:36:12.3281388Z       }
2026-06-16T09:36:12.3281665Z     },
2026-06-16T09:36:12.3281940Z     {
2026-06-16T09:36:12.3282246Z       "id": "REQ-CLI-2",
2026-06-16T09:36:12.3284584Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-16T09:36:12.3287006Z       "requiredStages": [
2026-06-16T09:36:12.3287411Z         "impl",
2026-06-16T09:36:12.3287742Z         "unit"
2026-06-16T09:36:12.3288061Z       ],
2026-06-16T09:36:12.3288361Z       "stages": {
2026-06-16T09:36:12.3288699Z         "doc": {
2026-06-16T09:36:12.3289138Z           "complete": false,
2026-06-16T09:36:12.3289577Z           "evidence": []
2026-06-16T09:36:12.3289958Z         },
2026-06-16T09:36:12.3290259Z         "impl": {
2026-06-16T09:36:12.3290614Z           "complete": true,
2026-06-16T09:36:12.3291028Z           "evidence": [
2026-06-16T09:36:12.3291386Z             {
2026-06-16T09:36:12.3291811Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3292397Z               "line": 382
2026-06-16T09:36:12.3292807Z             },
2026-06-16T09:36:12.3293115Z             {
2026-06-16T09:36:12.3293542Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-16T09:36:12.3294115Z               "line": 97
2026-06-16T09:36:12.3294490Z             },
2026-06-16T09:36:12.3294805Z             {
2026-06-16T09:36:12.3295241Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-16T09:36:12.3295810Z               "line": 239
2026-06-16T09:36:12.3296183Z             },
2026-06-16T09:36:12.3296503Z             {
2026-06-16T09:36:12.3296885Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3297399Z               "line": 419
2026-06-16T09:36:12.3297781Z             },
2026-06-16T09:36:12.3298094Z             {
2026-06-16T09:36:12.3298483Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3299089Z               "line": 1117
2026-06-16T09:36:12.3299479Z             },
2026-06-16T09:36:12.3299790Z             {
2026-06-16T09:36:12.3300180Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3300702Z               "line": 1757
2026-06-16T09:36:12.3301075Z             },
2026-06-16T09:36:12.3301398Z             {
2026-06-16T09:36:12.3301780Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3302304Z               "line": 1836
2026-06-16T09:36:12.3302681Z             },
2026-06-16T09:36:12.3303005Z             {
2026-06-16T09:36:12.3303395Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3303912Z               "line": 1897
2026-06-16T09:36:12.3304407Z             }
2026-06-16T09:36:12.3304722Z           ]
2026-06-16T09:36:12.3305018Z         },
2026-06-16T09:36:12.3305319Z         "int": {
2026-06-16T09:36:12.3305667Z           "complete": false,
2026-06-16T09:36:12.3306234Z           "evidence": []
2026-06-16T09:36:12.3306614Z         },
2026-06-16T09:36:12.3306920Z         "unit": {
2026-06-16T09:36:12.3307267Z           "complete": true,
2026-06-16T09:36:12.3307672Z           "evidence": [
2026-06-16T09:36:12.3308041Z             {
2026-06-16T09:36:12.3308474Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-16T09:36:12.3309120Z               "line": 309
2026-06-16T09:36:12.3309529Z             },
2026-06-16T09:36:12.3309848Z             {
2026-06-16T09:36:12.3310220Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3310735Z               "line": 7018
2026-06-16T09:36:12.3311122Z             }
2026-06-16T09:36:12.3311436Z           ]
2026-06-16T09:36:12.3311729Z         }
2026-06-16T09:36:12.3312015Z       }
2026-06-16T09:36:12.3312301Z     },
2026-06-16T09:36:12.3312588Z     {
2026-06-16T09:36:12.3312897Z       "id": "REQ-CLI-3",
2026-06-16T09:36:12.3315235Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-16T09:36:12.3317638Z       "requiredStages": [
2026-06-16T09:36:12.3318024Z         "impl",
2026-06-16T09:36:12.3318353Z         "unit"
2026-06-16T09:36:12.3318663Z       ],
2026-06-16T09:36:12.3319016Z       "stages": {
2026-06-16T09:36:12.3319379Z         "doc": {
2026-06-16T09:36:12.3319731Z           "complete": false,
2026-06-16T09:36:12.3320155Z           "evidence": []
2026-06-16T09:36:12.3320538Z         },
2026-06-16T09:36:12.3320834Z         "impl": {
2026-06-16T09:36:12.3321192Z           "complete": true,
2026-06-16T09:36:12.3321596Z           "evidence": [
2026-06-16T09:36:12.3321958Z             {
2026-06-16T09:36:12.3322336Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3322866Z               "line": 1028
2026-06-16T09:36:12.3323252Z             }
2026-06-16T09:36:12.3323567Z           ]
2026-06-16T09:36:12.3323853Z         },
2026-06-16T09:36:12.3324144Z         "int": {
2026-06-16T09:36:12.3324501Z           "complete": false,
2026-06-16T09:36:12.3324931Z           "evidence": []
2026-06-16T09:36:12.3325299Z         },
2026-06-16T09:36:12.3325604Z         "unit": {
2026-06-16T09:36:12.3325968Z           "complete": true,
2026-06-16T09:36:12.3326377Z           "evidence": [
2026-06-16T09:36:12.3326739Z             {
2026-06-16T09:36:12.3327116Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3327626Z               "line": 6845
2026-06-16T09:36:12.3328007Z             }
2026-06-16T09:36:12.3328316Z           ]
2026-06-16T09:36:12.3328603Z         }
2026-06-16T09:36:12.3328899Z       }
2026-06-16T09:36:12.3329256Z     },
2026-06-16T09:36:12.3329534Z     {
2026-06-16T09:36:12.3336265Z       "id": "REQ-CONSENT-1",
2026-06-16T09:36:12.3339291Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-16T09:36:12.3342211Z       "requiredStages": [
2026-06-16T09:36:12.3342632Z         "impl",
2026-06-16T09:36:12.3342970Z         "unit"
2026-06-16T09:36:12.3360021Z       ],
2026-06-16T09:36:12.3360374Z       "stages": {
2026-06-16T09:36:12.3360726Z         "doc": {
2026-06-16T09:36:12.3361103Z           "complete": false,
2026-06-16T09:36:12.3361540Z           "evidence": []
2026-06-16T09:36:12.3361921Z         },
2026-06-16T09:36:12.3362230Z         "impl": {
2026-06-16T09:36:12.3362588Z           "complete": true,
2026-06-16T09:36:12.3363193Z           "evidence": [
2026-06-16T09:36:12.3363555Z             {
2026-06-16T09:36:12.3363995Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3364558Z               "line": 27
2026-06-16T09:36:12.3365036Z             },
2026-06-16T09:36:12.3365355Z             {
2026-06-16T09:36:12.3365778Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3366323Z               "line": 75
2026-06-16T09:36:12.3366704Z             },
2026-06-16T09:36:12.3367022Z             {
2026-06-16T09:36:12.3367439Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3367997Z               "line": 98
2026-06-16T09:36:12.3368365Z             },
2026-06-16T09:36:12.3368675Z             {
2026-06-16T09:36:12.3369171Z               "path": "crates/spt-store/src/grants.rs",
2026-06-16T09:36:12.3369717Z               "line": 82
2026-06-16T09:36:12.3370089Z             },
2026-06-16T09:36:12.3370399Z             {
2026-06-16T09:36:12.3370815Z               "path": "crates/spt-store/src/grants.rs",
2026-06-16T09:36:12.3371358Z               "line": 109
2026-06-16T09:36:12.3371731Z             },
2026-06-16T09:36:12.3372038Z             {
2026-06-16T09:36:12.3372447Z               "path": "crates/spt-store/src/grants.rs",
2026-06-16T09:36:12.3372995Z               "line": 127
2026-06-16T09:36:12.3373377Z             },
2026-06-16T09:36:12.3373691Z             {
2026-06-16T09:36:12.3374092Z               "path": "crates/spt-store/src/grants.rs",
2026-06-16T09:36:12.3374641Z               "line": 142
2026-06-16T09:36:12.3375010Z             },
2026-06-16T09:36:12.3375319Z             {
2026-06-16T09:36:12.3375701Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3376220Z               "line": 6385
2026-06-16T09:36:12.3376607Z             }
2026-06-16T09:36:12.3376922Z           ]
2026-06-16T09:36:12.3377222Z         },
2026-06-16T09:36:12.3377520Z         "int": {
2026-06-16T09:36:12.3377876Z           "complete": false,
2026-06-16T09:36:12.3378309Z           "evidence": []
2026-06-16T09:36:12.3378686Z         },
2026-06-16T09:36:12.3379068Z         "unit": {
2026-06-16T09:36:12.3379426Z           "complete": true,
2026-06-16T09:36:12.3379831Z           "evidence": [
2026-06-16T09:36:12.3380201Z             {
2026-06-16T09:36:12.3380625Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3381197Z               "line": 334
2026-06-16T09:36:12.3381575Z             },
2026-06-16T09:36:12.3381880Z             {
2026-06-16T09:36:12.3382301Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3382868Z               "line": 380
2026-06-16T09:36:12.3383235Z             },
2026-06-16T09:36:12.3383555Z             {
2026-06-16T09:36:12.3383970Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3384524Z               "line": 391
2026-06-16T09:36:12.3384896Z             },
2026-06-16T09:36:12.3385220Z             {
2026-06-16T09:36:12.3385626Z               "path": "crates/spt-store/src/grants.rs",
2026-06-16T09:36:12.3386184Z               "line": 165
2026-06-16T09:36:12.3386551Z             },
2026-06-16T09:36:12.3386875Z             {
2026-06-16T09:36:12.3387280Z               "path": "crates/spt-store/src/grants.rs",
2026-06-16T09:36:12.3387839Z               "line": 184
2026-06-16T09:36:12.3388207Z             },
2026-06-16T09:36:12.3388527Z             {
2026-06-16T09:36:12.3388931Z               "path": "crates/spt-store/src/grants.rs",
2026-06-16T09:36:12.3389590Z               "line": 204
2026-06-16T09:36:12.3389967Z             },
2026-06-16T09:36:12.3390282Z             {
2026-06-16T09:36:12.3390664Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3391181Z               "line": 7198
2026-06-16T09:36:12.3391568Z             }
2026-06-16T09:36:12.3391878Z           ]
2026-06-16T09:36:12.3392168Z         }
2026-06-16T09:36:12.3392454Z       }
2026-06-16T09:36:12.3392726Z     },
2026-06-16T09:36:12.3393007Z     {
2026-06-16T09:36:12.3393437Z       "id": "REQ-CONSENT-2",
2026-06-16T09:36:12.3396040Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-16T09:36:12.3398852Z       "requiredStages": [
2026-06-16T09:36:12.3399340Z         "impl",
2026-06-16T09:36:12.3399664Z         "unit"
2026-06-16T09:36:12.3399983Z       ],
2026-06-16T09:36:12.3400274Z       "stages": {
2026-06-16T09:36:12.3400617Z         "doc": {
2026-06-16T09:36:12.3400965Z           "complete": false,
2026-06-16T09:36:12.3401388Z           "evidence": []
2026-06-16T09:36:12.3401755Z         },
2026-06-16T09:36:12.3402051Z         "impl": {
2026-06-16T09:36:12.3402399Z           "complete": true,
2026-06-16T09:36:12.3402801Z           "evidence": [
2026-06-16T09:36:12.3403158Z             {
2026-06-16T09:36:12.3403590Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3404157Z               "line": 140
2026-06-16T09:36:12.3404523Z             },
2026-06-16T09:36:12.3404842Z             {
2026-06-16T09:36:12.3405276Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3405829Z               "line": 165
2026-06-16T09:36:12.3406206Z             },
2026-06-16T09:36:12.3406514Z             {
2026-06-16T09:36:12.3406927Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3407475Z               "line": 199
2026-06-16T09:36:12.3407843Z             },
2026-06-16T09:36:12.3408157Z             {
2026-06-16T09:36:12.3408569Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3409234Z               "line": 241
2026-06-16T09:36:12.3409619Z             },
2026-06-16T09:36:12.3409928Z             {
2026-06-16T09:36:12.3410338Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3410910Z               "line": 269
2026-06-16T09:36:12.3411296Z             },
2026-06-16T09:36:12.3411602Z             {
2026-06-16T09:36:12.3412010Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3412554Z               "line": 300
2026-06-16T09:36:12.3412930Z             },
2026-06-16T09:36:12.3413240Z             {
2026-06-16T09:36:12.3413618Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3414122Z               "line": 6176
2026-06-16T09:36:12.3414515Z             },
2026-06-16T09:36:12.3414815Z             {
2026-06-16T09:36:12.3415187Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3415693Z               "line": 6234
2026-06-16T09:36:12.3416074Z             }
2026-06-16T09:36:12.3416375Z           ]
2026-06-16T09:36:12.3416679Z         },
2026-06-16T09:36:12.3416980Z         "int": {
2026-06-16T09:36:12.3417325Z           "complete": false,
2026-06-16T09:36:12.3417744Z           "evidence": []
2026-06-16T09:36:12.3418112Z         },
2026-06-16T09:36:12.3418413Z         "unit": {
2026-06-16T09:36:12.3418761Z           "complete": true,
2026-06-16T09:36:12.3419266Z           "evidence": [
2026-06-16T09:36:12.3419618Z             {
2026-06-16T09:36:12.3420035Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3420588Z               "line": 419
2026-06-16T09:36:12.3420970Z             },
2026-06-16T09:36:12.3421289Z             {
2026-06-16T09:36:12.3421709Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3422268Z               "line": 436
2026-06-16T09:36:12.3422642Z             },
2026-06-16T09:36:12.3422967Z             {
2026-06-16T09:36:12.3423382Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3423935Z               "line": 472
2026-06-16T09:36:12.3424312Z             },
2026-06-16T09:36:12.3424622Z             {
2026-06-16T09:36:12.3425037Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.3425600Z               "line": 516
2026-06-16T09:36:12.3426091Z             },
2026-06-16T09:36:12.3426406Z             {
2026-06-16T09:36:12.3426783Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3427283Z               "line": 8440
2026-06-16T09:36:12.3427663Z             },
2026-06-16T09:36:12.3428081Z             {
2026-06-16T09:36:12.3428448Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3429026Z               "line": 8522
2026-06-16T09:36:12.3429393Z             }
2026-06-16T09:36:12.3429694Z           ]
2026-06-16T09:36:12.3429980Z         }
2026-06-16T09:36:12.3430264Z       }
2026-06-16T09:36:12.3430537Z     },
2026-06-16T09:36:12.3430814Z     {
2026-06-16T09:36:12.3431129Z       "id": "REQ-CONSENT-3",
2026-06-16T09:36:12.3436414Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-16T09:36:12.3441313Z       "requiredStages": [
2026-06-16T09:36:12.3441708Z         "doc",
2026-06-16T09:36:12.3442027Z         "impl",
2026-06-16T09:36:12.3442357Z         "unit",
2026-06-16T09:36:12.3442671Z         "int"
2026-06-16T09:36:12.3442976Z       ],
2026-06-16T09:36:12.3443258Z       "stages": {
2026-06-16T09:36:12.3443581Z         "doc": {
2026-06-16T09:36:12.3443929Z           "complete": true,
2026-06-16T09:36:12.3444335Z           "evidence": [
2026-06-16T09:36:12.3444683Z             {
2026-06-16T09:36:12.3445032Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.3445474Z               "line": 285
2026-06-16T09:36:12.3445841Z             }
2026-06-16T09:36:12.3446158Z           ]
2026-06-16T09:36:12.3446453Z         },
2026-06-16T09:36:12.3446758Z         "impl": {
2026-06-16T09:36:12.3447106Z           "complete": true,
2026-06-16T09:36:12.3447512Z           "evidence": [
2026-06-16T09:36:12.3447885Z             {
2026-06-16T09:36:12.3448308Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.3448870Z               "line": 123
2026-06-16T09:36:12.3449297Z             },
2026-06-16T09:36:12.3449612Z             {
2026-06-16T09:36:12.3450030Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.3450597Z               "line": 162
2026-06-16T09:36:12.3450970Z             },
2026-06-16T09:36:12.3451284Z             {
2026-06-16T09:36:12.3451696Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.3452254Z               "line": 291
2026-06-16T09:36:12.3452621Z             },
2026-06-16T09:36:12.3452936Z             {
2026-06-16T09:36:12.3453347Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.3453929Z               "line": 499
2026-06-16T09:36:12.3454289Z             },
2026-06-16T09:36:12.3454595Z             {
2026-06-16T09:36:12.3455019Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.3455573Z               "line": 749
2026-06-16T09:36:12.3455949Z             },
2026-06-16T09:36:12.3456260Z             {
2026-06-16T09:36:12.3456628Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3457142Z               "line": 6302
2026-06-16T09:36:12.3457520Z             }
2026-06-16T09:36:12.3457825Z           ]
2026-06-16T09:36:12.3458115Z         },
2026-06-16T09:36:12.3458401Z         "int": {
2026-06-16T09:36:12.3458750Z           "complete": true,
2026-06-16T09:36:12.3459235Z           "evidence": [
2026-06-16T09:36:12.3459590Z             {
2026-06-16T09:36:12.3460023Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-16T09:36:12.3460600Z               "line": 16
2026-06-16T09:36:12.3461102Z             }
2026-06-16T09:36:12.3461403Z           ]
2026-06-16T09:36:12.3461694Z         },
2026-06-16T09:36:12.3461987Z         "unit": {
2026-06-16T09:36:12.3462338Z           "complete": true,
2026-06-16T09:36:12.3462729Z           "evidence": [
2026-06-16T09:36:12.3463196Z             {
2026-06-16T09:36:12.3463612Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.3464174Z               "line": 1019
2026-06-16T09:36:12.3464546Z             },
2026-06-16T09:36:12.3464854Z             {
2026-06-16T09:36:12.3465269Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.3465818Z               "line": 1066
2026-06-16T09:36:12.3466204Z             },
2026-06-16T09:36:12.3466515Z             {
2026-06-16T09:36:12.3466937Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.3467508Z               "line": 1113
2026-06-16T09:36:12.3467879Z             }
2026-06-16T09:36:12.3468170Z           ]
2026-06-16T09:36:12.3468475Z         }
2026-06-16T09:36:12.3468752Z       }
2026-06-16T09:36:12.3469095Z     },
2026-06-16T09:36:12.3469358Z     {
2026-06-16T09:36:12.3469668Z       "id": "REQ-CONV-1",
2026-06-16T09:36:12.3473523Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-16T09:36:12.3477245Z       "requiredStages": [
2026-06-16T09:36:12.3477631Z         "impl",
2026-06-16T09:36:12.3477943Z         "unit"
2026-06-16T09:36:12.3478253Z       ],
2026-06-16T09:36:12.3478553Z       "stages": {
2026-06-16T09:36:12.3478877Z         "doc": {
2026-06-16T09:36:12.3479303Z           "complete": false,
2026-06-16T09:36:12.3479716Z           "evidence": []
2026-06-16T09:36:12.3480079Z         },
2026-06-16T09:36:12.3480379Z         "impl": {
2026-06-16T09:36:12.3480720Z           "complete": true,
2026-06-16T09:36:12.3481120Z           "evidence": [
2026-06-16T09:36:12.3481488Z             {
2026-06-16T09:36:12.3481916Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3482480Z               "line": 861
2026-06-16T09:36:12.3482856Z             },
2026-06-16T09:36:12.3483159Z             {
2026-06-16T09:36:12.3483582Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.3484135Z               "line": 94
2026-06-16T09:36:12.3484507Z             },
2026-06-16T09:36:12.3484822Z             {
2026-06-16T09:36:12.3485250Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.3485813Z               "line": 345
2026-06-16T09:36:12.3486169Z             },
2026-06-16T09:36:12.3486480Z             {
2026-06-16T09:36:12.3486919Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.3487490Z               "line": 387
2026-06-16T09:36:12.3487849Z             },
2026-06-16T09:36:12.3488152Z             {
2026-06-16T09:36:12.3488575Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.3489215Z               "line": 472
2026-06-16T09:36:12.3489600Z             },
2026-06-16T09:36:12.3489914Z             {
2026-06-16T09:36:12.3490324Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3490878Z               "line": 667
2026-06-16T09:36:12.3491241Z             },
2026-06-16T09:36:12.3491556Z             {
2026-06-16T09:36:12.3491971Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3492524Z               "line": 693
2026-06-16T09:36:12.3492896Z             },
2026-06-16T09:36:12.3493206Z             {
2026-06-16T09:36:12.3493629Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.3494189Z               "line": 369
2026-06-16T09:36:12.3494676Z             },
2026-06-16T09:36:12.3494991Z             {
2026-06-16T09:36:12.3495410Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-16T09:36:12.3495969Z               "line": 19
2026-06-16T09:36:12.3496439Z             }
2026-06-16T09:36:12.3496744Z           ]
2026-06-16T09:36:12.3497035Z         },
2026-06-16T09:36:12.3497327Z         "int": {
2026-06-16T09:36:12.3497674Z           "complete": false,
2026-06-16T09:36:12.3498094Z           "evidence": []
2026-06-16T09:36:12.3498458Z         },
2026-06-16T09:36:12.3498746Z         "unit": {
2026-06-16T09:36:12.3499183Z           "complete": true,
2026-06-16T09:36:12.3499597Z           "evidence": [
2026-06-16T09:36:12.3499954Z             {
2026-06-16T09:36:12.3500361Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3500918Z               "line": 1263
2026-06-16T09:36:12.3501286Z             },
2026-06-16T09:36:12.3501598Z             {
2026-06-16T09:36:12.3502012Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-16T09:36:12.3502579Z               "line": 108
2026-06-16T09:36:12.3502947Z             },
2026-06-16T09:36:12.3503257Z             {
2026-06-16T09:36:12.3503680Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-16T09:36:12.3504252Z               "line": 134
2026-06-16T09:36:12.3504607Z             },
2026-06-16T09:36:12.3504908Z             {
2026-06-16T09:36:12.3505332Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-16T09:36:12.3556819Z               "line": 144
2026-06-16T09:36:12.3557470Z             }
2026-06-16T09:36:12.3557808Z           ]
2026-06-16T09:36:12.3558118Z         }
2026-06-16T09:36:12.3558409Z       }
2026-06-16T09:36:12.3558686Z     },
2026-06-16T09:36:12.3559033Z     {
2026-06-16T09:36:12.3559405Z       "id": "REQ-CONV-2",
2026-06-16T09:36:12.3562510Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-16T09:36:12.3565416Z       "requiredStages": [
2026-06-16T09:36:12.3565797Z         "impl",
2026-06-16T09:36:12.3566126Z         "unit"
2026-06-16T09:36:12.3566431Z       ],
2026-06-16T09:36:12.3566717Z       "stages": {
2026-06-16T09:36:12.3567036Z         "doc": {
2026-06-16T09:36:12.3567370Z           "complete": false,
2026-06-16T09:36:12.3567772Z           "evidence": []
2026-06-16T09:36:12.3568134Z         },
2026-06-16T09:36:12.3568439Z         "impl": {
2026-06-16T09:36:12.3568787Z           "complete": true,
2026-06-16T09:36:12.3569255Z           "evidence": [
2026-06-16T09:36:12.3569650Z             {
2026-06-16T09:36:12.3570066Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3570623Z               "line": 359
2026-06-16T09:36:12.3570998Z             },
2026-06-16T09:36:12.3571304Z             {
2026-06-16T09:36:12.3571735Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-16T09:36:12.3572311Z               "line": 119
2026-06-16T09:36:12.3572657Z             },
2026-06-16T09:36:12.3572964Z             {
2026-06-16T09:36:12.3573395Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.3573963Z               "line": 789
2026-06-16T09:36:12.3574330Z             },
2026-06-16T09:36:12.3574635Z             {
2026-06-16T09:36:12.3575063Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.3575639Z               "line": 800
2026-06-16T09:36:12.3576010Z             },
2026-06-16T09:36:12.3576314Z             {
2026-06-16T09:36:12.3576728Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.3577267Z               "line": 334
2026-06-16T09:36:12.3577639Z             },
2026-06-16T09:36:12.3577944Z             {
2026-06-16T09:36:12.3578609Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3579449Z               "line": 2802
2026-06-16T09:36:12.3579830Z             },
2026-06-16T09:36:12.3580125Z             {
2026-06-16T09:36:12.3580482Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3581098Z               "line": 2818
2026-06-16T09:36:12.3581469Z             },
2026-06-16T09:36:12.3581784Z             {
2026-06-16T09:36:12.3582160Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3582657Z               "line": 2877
2026-06-16T09:36:12.3583056Z             }
2026-06-16T09:36:12.3583350Z           ]
2026-06-16T09:36:12.3583626Z         },
2026-06-16T09:36:12.3583902Z         "int": {
2026-06-16T09:36:12.3584251Z           "complete": false,
2026-06-16T09:36:12.3584655Z           "evidence": []
2026-06-16T09:36:12.3585009Z         },
2026-06-16T09:36:12.3585303Z         "unit": {
2026-06-16T09:36:12.3585642Z           "complete": true,
2026-06-16T09:36:12.3586051Z           "evidence": [
2026-06-16T09:36:12.3586426Z             {
2026-06-16T09:36:12.3586889Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3587433Z               "line": 889
2026-06-16T09:36:12.3587800Z             },
2026-06-16T09:36:12.3588110Z             {
2026-06-16T09:36:12.3588533Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3589183Z               "line": 1014
2026-06-16T09:36:12.3589569Z             },
2026-06-16T09:36:12.3589874Z             {
2026-06-16T09:36:12.3590319Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-16T09:36:12.3590886Z               "line": 215
2026-06-16T09:36:12.3591249Z             }
2026-06-16T09:36:12.3591547Z           ]
2026-06-16T09:36:12.3591838Z         }
2026-06-16T09:36:12.3592114Z       }
2026-06-16T09:36:12.3592391Z     },
2026-06-16T09:36:12.3592677Z     {
2026-06-16T09:36:12.3592987Z       "id": "REQ-DAEMON-1",
2026-06-16T09:36:12.3593589Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-16T09:36:12.3594276Z       "requiredStages": [
2026-06-16T09:36:12.3594667Z         "impl",
2026-06-16T09:36:12.3594982Z         "unit",
2026-06-16T09:36:12.3595287Z         "int"
2026-06-16T09:36:12.3595592Z       ],
2026-06-16T09:36:12.3595887Z       "stages": {
2026-06-16T09:36:12.3596211Z         "doc": {
2026-06-16T09:36:12.3596573Z           "complete": false,
2026-06-16T09:36:12.3596986Z           "evidence": []
2026-06-16T09:36:12.3597354Z         },
2026-06-16T09:36:12.3597645Z         "impl": {
2026-06-16T09:36:12.3597988Z           "complete": true,
2026-06-16T09:36:12.3598384Z           "evidence": [
2026-06-16T09:36:12.3598740Z             {
2026-06-16T09:36:12.3599231Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3599819Z               "line": 229
2026-06-16T09:36:12.3600187Z             },
2026-06-16T09:36:12.3600482Z             {
2026-06-16T09:36:12.3600889Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.3601436Z               "line": 12
2026-06-16T09:36:12.3601786Z             },
2026-06-16T09:36:12.3602088Z             {
2026-06-16T09:36:12.3602504Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3603066Z               "line": 16
2026-06-16T09:36:12.3603429Z             },
2026-06-16T09:36:12.3603739Z             {
2026-06-16T09:36:12.3604167Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3604718Z               "line": 259
2026-06-16T09:36:12.3605090Z             },
2026-06-16T09:36:12.3605395Z             {
2026-06-16T09:36:12.3605800Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3606367Z               "line": 24
2026-06-16T09:36:12.3606738Z             },
2026-06-16T09:36:12.3607049Z             {
2026-06-16T09:36:12.3607469Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3607618Z               "line": 136
2026-06-16T09:36:12.3607751Z             },
2026-06-16T09:36:12.3608061Z             {
2026-06-16T09:36:12.3608295Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3608446Z               "line": 153
2026-06-16T09:36:12.3608572Z             },
2026-06-16T09:36:12.3608705Z             {
2026-06-16T09:36:12.3609134Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3609268Z               "line": 202
2026-06-16T09:36:12.3609415Z             },
2026-06-16T09:36:12.3609540Z             {
2026-06-16T09:36:12.3609786Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3609947Z               "line": 234
2026-06-16T09:36:12.3610088Z             },
2026-06-16T09:36:12.3610218Z             {
2026-06-16T09:36:12.3610442Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-16T09:36:12.3610586Z               "line": 15
2026-06-16T09:36:12.3610713Z             },
2026-06-16T09:36:12.3610848Z             {
2026-06-16T09:36:12.3611067Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.3611209Z               "line": 183
2026-06-16T09:36:12.3611343Z             },
2026-06-16T09:36:12.3611473Z             {
2026-06-16T09:36:12.3611691Z               "path": "crates/spt/src/api/live.rs",
2026-06-16T09:36:12.3611839Z               "line": 13
2026-06-16T09:36:12.3611977Z             },
2026-06-16T09:36:12.3612107Z             {
2026-06-16T09:36:12.3612321Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.3612473Z               "line": 281
2026-06-16T09:36:12.3612601Z             },
2026-06-16T09:36:12.3612735Z             {
2026-06-16T09:36:12.3612944Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.3613097Z               "line": 369
2026-06-16T09:36:12.3613220Z             }
2026-06-16T09:36:12.3613355Z           ]
2026-06-16T09:36:12.3613488Z         },
2026-06-16T09:36:12.3613621Z         "int": {
2026-06-16T09:36:12.3613778Z           "complete": true,
2026-06-16T09:36:12.3613921Z           "evidence": [
2026-06-16T09:36:12.3614060Z             {
2026-06-16T09:36:12.3614417Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-16T09:36:12.3614570Z               "line": 2
2026-06-16T09:36:12.3614694Z             },
2026-06-16T09:36:12.3614822Z             {
2026-06-16T09:36:12.3615195Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-16T09:36:12.3615340Z               "line": 16
2026-06-16T09:36:12.3615468Z             },
2026-06-16T09:36:12.3615592Z             {
2026-06-16T09:36:12.3615878Z               "path": "crates/spt/tests/live_bind_firsthost_e2e.rs",
2026-06-16T09:36:12.3616026Z               "line": 12
2026-06-16T09:36:12.3616159Z             },
2026-06-16T09:36:12.3616288Z             {
2026-06-16T09:36:12.3616551Z               "path": "crates/spt/tests/live_firsthost_e2e.rs",
2026-06-16T09:36:12.3616703Z               "line": 12
2026-06-16T09:36:12.3616837Z             }
2026-06-16T09:36:12.3616970Z           ]
2026-06-16T09:36:12.3617103Z         },
2026-06-16T09:36:12.3617242Z         "unit": {
2026-06-16T09:36:12.3617409Z           "complete": true,
2026-06-16T09:36:12.3617548Z           "evidence": [
2026-06-16T09:36:12.3617675Z             {
2026-06-16T09:36:12.3617921Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.3618072Z               "line": 285
2026-06-16T09:36:12.3618207Z             },
2026-06-16T09:36:12.3618321Z             {
2026-06-16T09:36:12.3618555Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.3618697Z               "line": 293
2026-06-16T09:36:12.3618836Z             },
2026-06-16T09:36:12.3619021Z             {
2026-06-16T09:36:12.3619246Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.3619399Z               "line": 309
2026-06-16T09:36:12.3619527Z             },
2026-06-16T09:36:12.3619660Z             {
2026-06-16T09:36:12.3619889Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.3620034Z               "line": 317
2026-06-16T09:36:12.3620289Z             },
2026-06-16T09:36:12.3620408Z             {
2026-06-16T09:36:12.3620644Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3620793Z               "line": 609
2026-06-16T09:36:12.3621021Z             },
2026-06-16T09:36:12.3621146Z             {
2026-06-16T09:36:12.3621389Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3621540Z               "line": 679
2026-06-16T09:36:12.3621670Z             },
2026-06-16T09:36:12.3621793Z             {
2026-06-16T09:36:12.3622033Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3622184Z               "line": 319
2026-06-16T09:36:12.3622314Z             },
2026-06-16T09:36:12.3622451Z             {
2026-06-16T09:36:12.3622695Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3622842Z               "line": 356
2026-06-16T09:36:12.3622968Z             },
2026-06-16T09:36:12.3623094Z             {
2026-06-16T09:36:12.3623348Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3623494Z               "line": 379
2026-06-16T09:36:12.3623629Z             },
2026-06-16T09:36:12.3623766Z             {
2026-06-16T09:36:12.3624000Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3624148Z               "line": 408
2026-06-16T09:36:12.3624277Z             },
2026-06-16T09:36:12.3624400Z             {
2026-06-16T09:36:12.3624643Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3624792Z               "line": 456
2026-06-16T09:36:12.3624926Z             },
2026-06-16T09:36:12.3625049Z             {
2026-06-16T09:36:12.3625287Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-16T09:36:12.3625429Z               "line": 499
2026-06-16T09:36:12.3625567Z             },
2026-06-16T09:36:12.3625694Z             {
2026-06-16T09:36:12.3625915Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-16T09:36:12.3626070Z               "line": 106
2026-06-16T09:36:12.3626195Z             },
2026-06-16T09:36:12.3626328Z             {
2026-06-16T09:36:12.3626538Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-16T09:36:12.3626686Z               "line": 132
2026-06-16T09:36:12.3626830Z             },
2026-06-16T09:36:12.3626953Z             {
2026-06-16T09:36:12.3627172Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.3627368Z               "line": 404
2026-06-16T09:36:12.3627756Z             }
2026-06-16T09:36:12.3627921Z           ]
2026-06-16T09:36:12.3628108Z         }
2026-06-16T09:36:12.3628249Z       }
2026-06-16T09:36:12.3628421Z     },
2026-06-16T09:36:12.3628632Z     {
2026-06-16T09:36:12.3628871Z       "id": "REQ-DAEMON-2",
2026-06-16T09:36:12.3629320Z       "title": "Broker/brain split for seamless self-update",
2026-06-16T09:36:12.3629505Z       "requiredStages": [
2026-06-16T09:36:12.3629697Z         "impl",
2026-06-16T09:36:12.3629896Z         "unit",
2026-06-16T09:36:12.3630106Z         "int"
2026-06-16T09:36:12.3630259Z       ],
2026-06-16T09:36:12.3630459Z       "stages": {
2026-06-16T09:36:12.3630646Z         "doc": {
2026-06-16T09:36:12.3630868Z           "complete": true,
2026-06-16T09:36:12.3631095Z           "evidence": [
2026-06-16T09:36:12.3631262Z             {
2026-06-16T09:36:12.3631596Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-16T09:36:12.3631781Z               "line": 250
2026-06-16T09:36:12.3632001Z             }
2026-06-16T09:36:12.3632202Z           ]
2026-06-16T09:36:12.3632358Z         },
2026-06-16T09:36:12.3632574Z         "impl": {
2026-06-16T09:36:12.3632754Z           "complete": true,
2026-06-16T09:36:12.3632988Z           "evidence": [
2026-06-16T09:36:12.3633166Z             {
2026-06-16T09:36:12.3633446Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.3633664Z               "line": 23
2026-06-16T09:36:12.3633826Z             },
2026-06-16T09:36:12.3634040Z             {
2026-06-16T09:36:12.3634298Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.3634655Z               "line": 795
2026-06-16T09:36:12.3634847Z             },
2026-06-16T09:36:12.3634998Z             {
2026-06-16T09:36:12.3635313Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.3635614Z               "line": 820
2026-06-16T09:36:12.3635825Z             },
2026-06-16T09:36:12.3635984Z             {
2026-06-16T09:36:12.3636274Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.3636503Z               "line": 1026
2026-06-16T09:36:12.3636684Z             },
2026-06-16T09:36:12.3636878Z             {
2026-06-16T09:36:12.3637142Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3637347Z               "line": 32
2026-06-16T09:36:12.3637580Z             },
2026-06-16T09:36:12.3637770Z             {
2026-06-16T09:36:12.3638048Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3638214Z               "line": 549
2026-06-16T09:36:12.3638414Z             },
2026-06-16T09:36:12.3638553Z             {
2026-06-16T09:36:12.3638919Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3639207Z               "line": 1055
2026-06-16T09:36:12.3639393Z             },
2026-06-16T09:36:12.3639575Z             {
2026-06-16T09:36:12.3639817Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3640099Z               "line": 1342
2026-06-16T09:36:12.3640257Z             },
2026-06-16T09:36:12.3640447Z             {
2026-06-16T09:36:12.3640738Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-16T09:36:12.3640892Z               "line": 11
2026-06-16T09:36:12.3641149Z             },
2026-06-16T09:36:12.3641310Z             {
2026-06-16T09:36:12.3641608Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3641817Z               "line": 148
2026-06-16T09:36:12.3641974Z             },
2026-06-16T09:36:12.3642214Z             {
2026-06-16T09:36:12.3642467Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3642680Z               "line": 311
2026-06-16T09:36:12.3642842Z             },
2026-06-16T09:36:12.3643033Z             {
2026-06-16T09:36:12.3643362Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.3643538Z               "line": 13
2026-06-16T09:36:12.3643735Z             },
2026-06-16T09:36:12.3643881Z             {
2026-06-16T09:36:12.3644177Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3644435Z               "line": 27
2026-06-16T09:36:12.3644595Z             },
2026-06-16T09:36:12.3644787Z             {
2026-06-16T09:36:12.3645064Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3645258Z               "line": 130
2026-06-16T09:36:12.3645449Z             },
2026-06-16T09:36:12.3645656Z             {
2026-06-16T09:36:12.3645941Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3646135Z               "line": 610
2026-06-16T09:36:12.3646318Z             },
2026-06-16T09:36:12.3646507Z             {
2026-06-16T09:36:12.3646824Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3647006Z               "line": 779
2026-06-16T09:36:12.3647215Z             },
2026-06-16T09:36:12.3647397Z             {
2026-06-16T09:36:12.3647692Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3647912Z               "line": 923
2026-06-16T09:36:12.3648064Z             },
2026-06-16T09:36:12.3648265Z             {
2026-06-16T09:36:12.3648527Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3648755Z               "line": 1010
2026-06-16T09:36:12.3649055Z             },
2026-06-16T09:36:12.3649252Z             {
2026-06-16T09:36:12.3649634Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3649796Z               "line": 1129
2026-06-16T09:36:12.3650010Z             },
2026-06-16T09:36:12.3650221Z             {
2026-06-16T09:36:12.3650639Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-16T09:36:12.3650841Z               "line": 10
2026-06-16T09:36:12.3651002Z             }
2026-06-16T09:36:12.3651222Z           ]
2026-06-16T09:36:12.3651409Z         },
2026-06-16T09:36:12.3651714Z         "int": {
2026-06-16T09:36:12.3651927Z           "complete": true,
2026-06-16T09:36:12.3652098Z           "evidence": [
2026-06-16T09:36:12.3652329Z             {
2026-06-16T09:36:12.3652615Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-16T09:36:12.3652826Z               "line": 17
2026-06-16T09:36:12.3653017Z             },
2026-06-16T09:36:12.3653164Z             {
2026-06-16T09:36:12.3653521Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-16T09:36:12.3653708Z               "line": 71
2026-06-16T09:36:12.3653898Z             },
2026-06-16T09:36:12.3654046Z             {
2026-06-16T09:36:12.3654371Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-16T09:36:12.3654615Z               "line": 91
2026-06-16T09:36:12.3654799Z             },
2026-06-16T09:36:12.3654985Z             {
2026-06-16T09:36:12.3655257Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-16T09:36:12.3655484Z               "line": 167
2026-06-16T09:36:12.3655700Z             },
2026-06-16T09:36:12.3655876Z             {
2026-06-16T09:36:12.3656196Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-16T09:36:12.3656377Z               "line": 209
2026-06-16T09:36:12.3656592Z             },
2026-06-16T09:36:12.3656739Z             {
2026-06-16T09:36:12.3657119Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-16T09:36:12.3657332Z               "line": 128
2026-06-16T09:36:12.3657489Z             },
2026-06-16T09:36:12.3657698Z             {
2026-06-16T09:36:12.3657966Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-16T09:36:12.3658219Z               "line": 59
2026-06-16T09:36:12.3658375Z             }
2026-06-16T09:36:12.3658553Z           ]
2026-06-16T09:36:12.3658758Z         },
2026-06-16T09:36:12.3658910Z         "unit": {
2026-06-16T09:36:12.3659315Z           "complete": true,
2026-06-16T09:36:12.3659544Z           "evidence": [
2026-06-16T09:36:12.3659746Z             {
2026-06-16T09:36:12.3660010Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-16T09:36:12.3660209Z               "line": 62
2026-06-16T09:36:12.3660447Z             },
2026-06-16T09:36:12.3660609Z             {
2026-06-16T09:36:12.3660904Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-16T09:36:12.3661077Z               "line": 76
2026-06-16T09:36:12.3661247Z             },
2026-06-16T09:36:12.3661487Z             {
2026-06-16T09:36:12.3661725Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-16T09:36:12.3661945Z               "line": 88
2026-06-16T09:36:12.3662096Z             },
2026-06-16T09:36:12.3662274Z             {
2026-06-16T09:36:12.3662567Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-16T09:36:12.3662799Z               "line": 294
2026-06-16T09:36:12.3663005Z             },
2026-06-16T09:36:12.3663156Z             {
2026-06-16T09:36:12.3663419Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.3663634Z               "line": 771
2026-06-16T09:36:12.3663868Z             },
2026-06-16T09:36:12.3664053Z             {
2026-06-16T09:36:12.3664296Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.3664482Z               "line": 779
2026-06-16T09:36:12.3664677Z             },
2026-06-16T09:36:12.3664898Z             {
2026-06-16T09:36:12.3665141Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.3665354Z               "line": 796
2026-06-16T09:36:12.3665516Z             },
2026-06-16T09:36:12.3665716Z             {
2026-06-16T09:36:12.3666012Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.3666179Z               "line": 850
2026-06-16T09:36:12.3666373Z             },
2026-06-16T09:36:12.3666537Z             {
2026-06-16T09:36:12.3667013Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3667251Z               "line": 1200
2026-06-16T09:36:12.3667410Z             },
2026-06-16T09:36:12.3667608Z             {
2026-06-16T09:36:12.3667996Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3668231Z               "line": 1212
2026-06-16T09:36:12.3668441Z             },
2026-06-16T09:36:12.3668592Z             {
2026-06-16T09:36:12.3668898Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-16T09:36:12.3669165Z               "line": 110
2026-06-16T09:36:12.3669385Z             },
2026-06-16T09:36:12.3669555Z             {
2026-06-16T09:36:12.3669861Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-16T09:36:12.3670076Z               "line": 143
2026-06-16T09:36:12.3670234Z             }
2026-06-16T09:36:12.3670442Z           ]
2026-06-16T09:36:12.3670614Z         }
2026-06-16T09:36:12.3670788Z       }
2026-06-16T09:36:12.3670954Z     },
2026-06-16T09:36:12.3671159Z     {
2026-06-16T09:36:12.3671399Z       "id": "REQ-DAEMON-3",
2026-06-16T09:36:12.3671774Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-16T09:36:12.3671994Z       "requiredStages": [
2026-06-16T09:36:12.3672180Z         "impl",
2026-06-16T09:36:12.3672380Z         "unit",
2026-06-16T09:36:12.3672596Z         "int"
2026-06-16T09:36:12.3672771Z       ],
2026-06-16T09:36:12.3672967Z       "stages": {
2026-06-16T09:36:12.3673142Z         "doc": {
2026-06-16T09:36:12.3673359Z           "complete": false,
2026-06-16T09:36:12.3673512Z           "evidence": []
2026-06-16T09:36:12.3673750Z         },
2026-06-16T09:36:12.3673956Z         "impl": {
2026-06-16T09:36:12.3674132Z           "complete": true,
2026-06-16T09:36:12.3674336Z           "evidence": [
2026-06-16T09:36:12.3674476Z             {
2026-06-16T09:36:12.3674824Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3674990Z               "line": 14
2026-06-16T09:36:12.3675214Z             },
2026-06-16T09:36:12.3675406Z             {
2026-06-16T09:36:12.3675648Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-16T09:36:12.3675900Z               "line": 11
2026-06-16T09:36:12.3676067Z             },
2026-06-16T09:36:12.3676271Z             {
2026-06-16T09:36:12.3676538Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.3676702Z               "line": 297
2026-06-16T09:36:12.3676943Z             },
2026-06-16T09:36:12.3677116Z             {
2026-06-16T09:36:12.3677360Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3677530Z               "line": 1755
2026-06-16T09:36:12.3677707Z             },
2026-06-16T09:36:12.3677955Z             {
2026-06-16T09:36:12.3678173Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3678391Z               "line": 3921
2026-06-16T09:36:12.3678566Z             },
2026-06-16T09:36:12.3678744Z             {
2026-06-16T09:36:12.3679072Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3679330Z               "line": 3942
2026-06-16T09:36:12.3679510Z             }
2026-06-16T09:36:12.3679664Z           ]
2026-06-16T09:36:12.3679840Z         },
2026-06-16T09:36:12.3680035Z         "int": {
2026-06-16T09:36:12.3680293Z           "complete": true,
2026-06-16T09:36:12.3680493Z           "evidence": [
2026-06-16T09:36:12.3680645Z             {
2026-06-16T09:36:12.3680928Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.3681154Z               "line": 49
2026-06-16T09:36:12.3681362Z             },
2026-06-16T09:36:12.3681510Z             {
2026-06-16T09:36:12.3681811Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.3682001Z               "line": 487
2026-06-16T09:36:12.3682207Z             }
2026-06-16T09:36:12.3682406Z           ]
2026-06-16T09:36:12.3682559Z         },
2026-06-16T09:36:12.3682755Z         "unit": {
2026-06-16T09:36:12.3682945Z           "complete": true,
2026-06-16T09:36:12.3683322Z           "evidence": [
2026-06-16T09:36:12.3683527Z             {
2026-06-16T09:36:12.3683788Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3684004Z               "line": 804
2026-06-16T09:36:12.3684164Z             },
2026-06-16T09:36:12.3684477Z             {
2026-06-16T09:36:12.3684754Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3684930Z               "line": 9524
2026-06-16T09:36:12.3685130Z             }
2026-06-16T09:36:12.3685287Z           ]
2026-06-16T09:36:12.3685503Z         }
2026-06-16T09:36:12.3685665Z       }
2026-06-16T09:36:12.3685864Z     },
2026-06-16T09:36:12.3686056Z     {
2026-06-16T09:36:12.3686242Z       "id": "REQ-DAEMON-4",
2026-06-16T09:36:12.3686569Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-16T09:36:12.3686774Z       "requiredStages": [
2026-06-16T09:36:12.3686985Z         "impl",
2026-06-16T09:36:12.3687141Z         "unit",
2026-06-16T09:36:12.3687328Z         "int"
2026-06-16T09:36:12.3687542Z       ],
2026-06-16T09:36:12.3687724Z       "stages": {
2026-06-16T09:36:12.3687944Z         "doc": {
2026-06-16T09:36:12.3688124Z           "complete": false,
2026-06-16T09:36:12.3688333Z           "evidence": []
2026-06-16T09:36:12.3688481Z         },
2026-06-16T09:36:12.3688738Z         "impl": {
2026-06-16T09:36:12.3689046Z           "complete": true,
2026-06-16T09:36:12.3689222Z           "evidence": [
2026-06-16T09:36:12.3689412Z             {
2026-06-16T09:36:12.3689675Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3689956Z               "line": 414
2026-06-16T09:36:12.3690153Z             },
2026-06-16T09:36:12.3690299Z             {
2026-06-16T09:36:12.3690600Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3690763Z               "line": 479
2026-06-16T09:36:12.3691015Z             },
2026-06-16T09:36:12.3691168Z             {
2026-06-16T09:36:12.3691469Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3691686Z               "line": 501
2026-06-16T09:36:12.3691833Z             }
2026-06-16T09:36:12.3692089Z           ]
2026-06-16T09:36:12.3692242Z         },
2026-06-16T09:36:12.3692433Z         "int": {
2026-06-16T09:36:12.3692608Z           "complete": true,
2026-06-16T09:36:12.3700249Z           "evidence": [
2026-06-16T09:36:12.3700455Z             {
2026-06-16T09:36:12.3700732Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-16T09:36:12.3700879Z               "line": 42
2026-06-16T09:36:12.3701013Z             }
2026-06-16T09:36:12.3701141Z           ]
2026-06-16T09:36:12.3701279Z         },
2026-06-16T09:36:12.3701408Z         "unit": {
2026-06-16T09:36:12.3701570Z           "complete": true,
2026-06-16T09:36:12.3701719Z           "evidence": [
2026-06-16T09:36:12.3701847Z             {
2026-06-16T09:36:12.3702094Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.3702227Z               "line": 428
2026-06-16T09:36:12.3702369Z             },
2026-06-16T09:36:12.3702558Z             {
2026-06-16T09:36:12.3702811Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3702960Z               "line": 907
2026-06-16T09:36:12.3703083Z             },
2026-06-16T09:36:12.3703222Z             {
2026-06-16T09:36:12.3703474Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3703622Z               "line": 977
2026-06-16T09:36:12.3703755Z             },
2026-06-16T09:36:12.3703880Z             {
2026-06-16T09:36:12.3704127Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3704281Z               "line": 1007
2026-06-16T09:36:12.3704414Z             },
2026-06-16T09:36:12.3704544Z             {
2026-06-16T09:36:12.3704794Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3704936Z               "line": 1040
2026-06-16T09:36:12.3705058Z             }
2026-06-16T09:36:12.3705183Z           ]
2026-06-16T09:36:12.3705303Z         }
2026-06-16T09:36:12.3705430Z       }
2026-06-16T09:36:12.3705750Z     },
2026-06-16T09:36:12.3705879Z     {
2026-06-16T09:36:12.3706059Z       "id": "REQ-DAEMON-5",
2026-06-16T09:36:12.3709741Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-16T09:36:12.3710030Z       "requiredStages": [
2026-06-16T09:36:12.3710161Z         "impl",
2026-06-16T09:36:12.3710294Z         "unit"
2026-06-16T09:36:12.3710429Z       ],
2026-06-16T09:36:12.3710551Z       "stages": {
2026-06-16T09:36:12.3710681Z         "doc": {
2026-06-16T09:36:12.3710833Z           "complete": false,
2026-06-16T09:36:12.3710982Z           "evidence": []
2026-06-16T09:36:12.3711105Z         },
2026-06-16T09:36:12.3711254Z         "impl": {
2026-06-16T09:36:12.3711420Z           "complete": true,
2026-06-16T09:36:12.3711563Z           "evidence": [
2026-06-16T09:36:12.3711691Z             {
2026-06-16T09:36:12.3711941Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3712106Z               "line": 476
2026-06-16T09:36:12.3712237Z             },
2026-06-16T09:36:12.3712368Z             {
2026-06-16T09:36:12.3712603Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3712749Z               "line": 769
2026-06-16T09:36:12.3712888Z             },
2026-06-16T09:36:12.3713009Z             {
2026-06-16T09:36:12.3713248Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3713405Z               "line": 782
2026-06-16T09:36:12.3713534Z             },
2026-06-16T09:36:12.3713657Z             {
2026-06-16T09:36:12.3713896Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3714039Z               "line": 800
2026-06-16T09:36:12.3714169Z             },
2026-06-16T09:36:12.3714301Z             {
2026-06-16T09:36:12.3714535Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3714688Z               "line": 841
2026-06-16T09:36:12.3714817Z             }
2026-06-16T09:36:12.3714949Z           ]
2026-06-16T09:36:12.3715075Z         },
2026-06-16T09:36:12.3715207Z         "int": {
2026-06-16T09:36:12.3715368Z           "complete": false,
2026-06-16T09:36:12.3715520Z           "evidence": []
2026-06-16T09:36:12.3715642Z         },
2026-06-16T09:36:12.3715776Z         "unit": {
2026-06-16T09:36:12.3715933Z           "complete": true,
2026-06-16T09:36:12.3716101Z           "evidence": [
2026-06-16T09:36:12.3716224Z             {
2026-06-16T09:36:12.3716473Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3716629Z               "line": 1189
2026-06-16T09:36:12.3716754Z             },
2026-06-16T09:36:12.3716896Z             {
2026-06-16T09:36:12.3717140Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3717293Z               "line": 1213
2026-06-16T09:36:12.3717417Z             },
2026-06-16T09:36:12.3717545Z             {
2026-06-16T09:36:12.3717788Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.3717942Z               "line": 1239
2026-06-16T09:36:12.3718075Z             }
2026-06-16T09:36:12.3718202Z           ]
2026-06-16T09:36:12.3718331Z         }
2026-06-16T09:36:12.3718450Z       }
2026-06-16T09:36:12.3718578Z     },
2026-06-16T09:36:12.3718713Z     {
2026-06-16T09:36:12.3718855Z       "id": "REQ-DAEMON-6",
2026-06-16T09:36:12.3723893Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-16T09:36:12.3724298Z       "requiredStages": [
2026-06-16T09:36:12.3724433Z         "impl",
2026-06-16T09:36:12.3724560Z         "unit"
2026-06-16T09:36:12.3724685Z       ],
2026-06-16T09:36:12.3724818Z       "stages": {
2026-06-16T09:36:12.3724942Z         "doc": {
2026-06-16T09:36:12.3725095Z           "complete": false,
2026-06-16T09:36:12.3725243Z           "evidence": []
2026-06-16T09:36:12.3725363Z         },
2026-06-16T09:36:12.3725500Z         "impl": {
2026-06-16T09:36:12.3725644Z           "complete": true,
2026-06-16T09:36:12.3725795Z           "evidence": [
2026-06-16T09:36:12.3725918Z             {
2026-06-16T09:36:12.3726170Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3726327Z               "line": 463
2026-06-16T09:36:12.3726446Z             },
2026-06-16T09:36:12.3726584Z             {
2026-06-16T09:36:12.3726818Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3726966Z               "line": 494
2026-06-16T09:36:12.3727104Z             },
2026-06-16T09:36:12.3727233Z             {
2026-06-16T09:36:12.3727471Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3727615Z               "line": 55
2026-06-16T09:36:12.3727733Z             },
2026-06-16T09:36:12.3727863Z             {
2026-06-16T09:36:12.3728096Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3728240Z               "line": 70
2026-06-16T09:36:12.3728377Z             },
2026-06-16T09:36:12.3728507Z             {
2026-06-16T09:36:12.3728691Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3728843Z               "line": 1809
2026-06-16T09:36:12.3729086Z             },
2026-06-16T09:36:12.3729221Z             {
2026-06-16T09:36:12.3729415Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3729573Z               "line": 1835
2026-06-16T09:36:12.3729706Z             }
2026-06-16T09:36:12.3729831Z           ]
2026-06-16T09:36:12.3729969Z         },
2026-06-16T09:36:12.3730093Z         "int": {
2026-06-16T09:36:12.3730260Z           "complete": false,
2026-06-16T09:36:12.3730393Z           "evidence": []
2026-06-16T09:36:12.3730527Z         },
2026-06-16T09:36:12.3730665Z         "unit": {
2026-06-16T09:36:12.3730809Z           "complete": true,
2026-06-16T09:36:12.3730959Z           "evidence": [
2026-06-16T09:36:12.3731088Z             {
2026-06-16T09:36:12.3731329Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3731468Z               "line": 288
2026-06-16T09:36:12.3731596Z             },
2026-06-16T09:36:12.3731720Z             {
2026-06-16T09:36:12.3731953Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3732098Z               "line": 299
2026-06-16T09:36:12.3732235Z             },
2026-06-16T09:36:12.3732365Z             {
2026-06-16T09:36:12.3732592Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3732741Z               "line": 325
2026-06-16T09:36:12.3732869Z             },
2026-06-16T09:36:12.3732999Z             {
2026-06-16T09:36:12.3733241Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3733380Z               "line": 351
2026-06-16T09:36:12.3733513Z             }
2026-06-16T09:36:12.3733633Z           ]
2026-06-16T09:36:12.3733766Z         }
2026-06-16T09:36:12.3733893Z       }
2026-06-16T09:36:12.3734022Z     },
2026-06-16T09:36:12.3734153Z     {
2026-06-16T09:36:12.3734301Z       "id": "REQ-DAEMON-7",
2026-06-16T09:36:12.3737818Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-16T09:36:12.3738208Z       "requiredStages": [
2026-06-16T09:36:12.3738341Z         "impl",
2026-06-16T09:36:12.3738476Z         "unit"
2026-06-16T09:36:12.3738593Z       ],
2026-06-16T09:36:12.3738733Z       "stages": {
2026-06-16T09:36:12.3738861Z         "doc": {
2026-06-16T09:36:12.3739101Z           "complete": false,
2026-06-16T09:36:12.3739256Z           "evidence": []
2026-06-16T09:36:12.3739384Z         },
2026-06-16T09:36:12.3739542Z         "impl": {
2026-06-16T09:36:12.3739689Z           "complete": true,
2026-06-16T09:36:12.3739838Z           "evidence": [
2026-06-16T09:36:12.3739961Z             {
2026-06-16T09:36:12.3740210Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3740362Z               "line": 513
2026-06-16T09:36:12.3740496Z             },
2026-06-16T09:36:12.3740633Z             {
2026-06-16T09:36:12.3740877Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.3741021Z               "line": 601
2026-06-16T09:36:12.3741148Z             },
2026-06-16T09:36:12.3741273Z             {
2026-06-16T09:36:12.3741510Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3741643Z               "line": 89
2026-06-16T09:36:12.3741766Z             },
2026-06-16T09:36:12.3741893Z             {
2026-06-16T09:36:12.3742086Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3742237Z               "line": 1756
2026-06-16T09:36:12.3742362Z             }
2026-06-16T09:36:12.3742494Z           ]
2026-06-16T09:36:12.3742619Z         },
2026-06-16T09:36:12.3742767Z         "int": {
2026-06-16T09:36:12.3742920Z           "complete": false,
2026-06-16T09:36:12.3743072Z           "evidence": []
2026-06-16T09:36:12.3743201Z         },
2026-06-16T09:36:12.3743334Z         "unit": {
2026-06-16T09:36:12.3743491Z           "complete": true,
2026-06-16T09:36:12.3743626Z           "evidence": [
2026-06-16T09:36:12.3743754Z             {
2026-06-16T09:36:12.3743978Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3744140Z               "line": 314
2026-06-16T09:36:12.3744265Z             },
2026-06-16T09:36:12.3744391Z             {
2026-06-16T09:36:12.3744587Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3744732Z               "line": 7018
2026-06-16T09:36:12.3744861Z             }
2026-06-16T09:36:12.3744991Z           ]
2026-06-16T09:36:12.3745123Z         }
2026-06-16T09:36:12.3745243Z       }
2026-06-16T09:36:12.3745366Z     },
2026-06-16T09:36:12.3745496Z     {
2026-06-16T09:36:12.3745649Z       "id": "REQ-DAEMON-8",
2026-06-16T09:36:12.3748048Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-16T09:36:12.3748233Z       "requiredStages": [
2026-06-16T09:36:12.3748368Z         "impl",
2026-06-16T09:36:12.3748510Z         "unit"
2026-06-16T09:36:12.3748643Z       ],
2026-06-16T09:36:12.3748773Z       "stages": {
2026-06-16T09:36:12.3748901Z         "doc": {
2026-06-16T09:36:12.3749130Z           "complete": false,
2026-06-16T09:36:12.3749283Z           "evidence": []
2026-06-16T09:36:12.3749407Z         },
2026-06-16T09:36:12.3749559Z         "impl": {
2026-06-16T09:36:12.3749704Z           "complete": true,
2026-06-16T09:36:12.3749854Z           "evidence": [
2026-06-16T09:36:12.3749988Z             {
2026-06-16T09:36:12.3750225Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3750374Z               "line": 413
2026-06-16T09:36:12.3750502Z             },
2026-06-16T09:36:12.3750632Z             {
2026-06-16T09:36:12.3750869Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3751155Z               "line": 56
2026-06-16T09:36:12.3751286Z             }
2026-06-16T09:36:12.3751404Z           ]
2026-06-16T09:36:12.3751533Z         },
2026-06-16T09:36:12.3751751Z         "int": {
2026-06-16T09:36:12.3751920Z           "complete": false,
2026-06-16T09:36:12.3752071Z           "evidence": []
2026-06-16T09:36:12.3752194Z         },
2026-06-16T09:36:12.3752326Z         "unit": {
2026-06-16T09:36:12.3752473Z           "complete": true,
2026-06-16T09:36:12.3752622Z           "evidence": [
2026-06-16T09:36:12.3752749Z             {
2026-06-16T09:36:12.3752993Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3753141Z               "line": 288
2026-06-16T09:36:12.3753270Z             },
2026-06-16T09:36:12.3753398Z             {
2026-06-16T09:36:12.3753627Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-16T09:36:12.3753765Z               "line": 325
2026-06-16T09:36:12.3753899Z             }
2026-06-16T09:36:12.3754028Z           ]
2026-06-16T09:36:12.3754157Z         }
2026-06-16T09:36:12.3754289Z       }
2026-06-16T09:36:12.3754414Z     },
2026-06-16T09:36:12.3754543Z     {
2026-06-16T09:36:12.3754700Z       "id": "REQ-DAEMON-9",
2026-06-16T09:36:12.3765308Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-16T09:36:12.3765559Z       "requiredStages": [
2026-06-16T09:36:12.3765707Z         "impl",
2026-06-16T09:36:12.3765834Z         "unit"
2026-06-16T09:36:12.3765967Z       ],
2026-06-16T09:36:12.3766115Z       "stages": {
2026-06-16T09:36:12.3766248Z         "doc": {
2026-06-16T09:36:12.3766411Z           "complete": false,
2026-06-16T09:36:12.3766563Z           "evidence": []
2026-06-16T09:36:12.3766702Z         },
2026-06-16T09:36:12.3766839Z         "impl": {
2026-06-16T09:36:12.3767007Z           "complete": true,
2026-06-16T09:36:12.3767149Z           "evidence": [
2026-06-16T09:36:12.3767279Z             {
2026-06-16T09:36:12.3767541Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3767689Z               "line": 276
2026-06-16T09:36:12.3767817Z             },
2026-06-16T09:36:12.3767942Z             {
2026-06-16T09:36:12.3768188Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3768339Z               "line": 600
2026-06-16T09:36:12.3768467Z             },
2026-06-16T09:36:12.3768597Z             {
2026-06-16T09:36:12.3768834Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3769058Z               "line": 192
2026-06-16T09:36:12.3769188Z             },
2026-06-16T09:36:12.3769321Z             {
2026-06-16T09:36:12.3769560Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3769701Z               "line": 312
2026-06-16T09:36:12.3769827Z             },
2026-06-16T09:36:12.3769955Z             {
2026-06-16T09:36:12.3770204Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3770350Z               "line": 349
2026-06-16T09:36:12.3770485Z             },
2026-06-16T09:36:12.3770612Z             {
2026-06-16T09:36:12.3770805Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3770955Z               "line": 1864
2026-06-16T09:36:12.3771084Z             }
2026-06-16T09:36:12.3771218Z           ]
2026-06-16T09:36:12.3771513Z         },
2026-06-16T09:36:12.3771641Z         "int": {
2026-06-16T09:36:12.3771800Z           "complete": false,
2026-06-16T09:36:12.3771946Z           "evidence": []
2026-06-16T09:36:12.3772081Z         },
2026-06-16T09:36:12.3772314Z         "unit": {
2026-06-16T09:36:12.3772467Z           "complete": true,
2026-06-16T09:36:12.3772614Z           "evidence": [
2026-06-16T09:36:12.3772745Z             {
2026-06-16T09:36:12.3772972Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3773115Z               "line": 760
2026-06-16T09:36:12.3773247Z             },
2026-06-16T09:36:12.3773377Z             {
2026-06-16T09:36:12.3773564Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3773718Z               "line": 9389
2026-06-16T09:36:12.3773855Z             }
2026-06-16T09:36:12.3773985Z           ]
2026-06-16T09:36:12.3774109Z         }
2026-06-16T09:36:12.3774241Z       }
2026-06-16T09:36:12.3774371Z     },
2026-06-16T09:36:12.3774504Z     {
2026-06-16T09:36:12.3774657Z       "id": "REQ-DOCS-1",
2026-06-16T09:36:12.3775105Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-16T09:36:12.3775273Z       "requiredStages": [
2026-06-16T09:36:12.3775405Z         "doc",
2026-06-16T09:36:12.3775540Z         "impl"
2026-06-16T09:36:12.3775686Z       ],
2026-06-16T09:36:12.3775835Z       "stages": {
2026-06-16T09:36:12.3775964Z         "doc": {
2026-06-16T09:36:12.3776128Z           "complete": true,
2026-06-16T09:36:12.3776290Z           "evidence": [
2026-06-16T09:36:12.3776418Z             {
2026-06-16T09:36:12.3776624Z               "path": "docs-site/src/index.md",
2026-06-16T09:36:12.3776760Z               "line": 50
2026-06-16T09:36:12.3776895Z             }
2026-06-16T09:36:12.3777028Z           ]
2026-06-16T09:36:12.3777162Z         },
2026-06-16T09:36:12.3777305Z         "impl": {
2026-06-16T09:36:12.3777453Z           "complete": true,
2026-06-16T09:36:12.3777605Z           "evidence": [
2026-06-16T09:36:12.3777738Z             {
2026-06-16T09:36:12.3777986Z               "path": ".github/workflows/docs-publish.yml",
2026-06-16T09:36:12.3778126Z               "line": 12
2026-06-16T09:36:12.3778249Z             },
2026-06-16T09:36:12.3778387Z             {
2026-06-16T09:36:12.3778582Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.3778733Z               "line": 14
2026-06-16T09:36:12.3778857Z             }
2026-06-16T09:36:12.3779075Z           ]
2026-06-16T09:36:12.3779200Z         },
2026-06-16T09:36:12.3779327Z         "int": {
2026-06-16T09:36:12.3779495Z           "complete": false,
2026-06-16T09:36:12.3779642Z           "evidence": []
2026-06-16T09:36:12.3779762Z         },
2026-06-16T09:36:12.3779891Z         "unit": {
2026-06-16T09:36:12.3780053Z           "complete": false,
2026-06-16T09:36:12.3780190Z           "evidence": []
2026-06-16T09:36:12.3780329Z         }
2026-06-16T09:36:12.3780463Z       }
2026-06-16T09:36:12.3780586Z     },
2026-06-16T09:36:12.3780726Z     {
2026-06-16T09:36:12.3780878Z       "id": "REQ-DOCS-2",
2026-06-16T09:36:12.3781230Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-16T09:36:12.3781384Z       "requiredStages": [
2026-06-16T09:36:12.3781515Z         "doc",
2026-06-16T09:36:12.3781658Z         "int"
2026-06-16T09:36:12.3781783Z       ],
2026-06-16T09:36:12.3781925Z       "stages": {
2026-06-16T09:36:12.3782054Z         "doc": {
2026-06-16T09:36:12.3782211Z           "complete": true,
2026-06-16T09:36:12.3782355Z           "evidence": [
2026-06-16T09:36:12.3782492Z             {
2026-06-16T09:36:12.3782884Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-16T09:36:12.3783032Z               "line": 3
2026-06-16T09:36:12.3783160Z             },
2026-06-16T09:36:12.3783285Z             {
2026-06-16T09:36:12.3783537Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-16T09:36:12.3783680Z               "line": 3
2026-06-16T09:36:12.3783812Z             },
2026-06-16T09:36:12.3784068Z             {
2026-06-16T09:36:12.3784326Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-16T09:36:12.3784472Z               "line": 3
2026-06-16T09:36:12.3784602Z             }
2026-06-16T09:36:12.3784831Z           ]
2026-06-16T09:36:12.3784955Z         },
2026-06-16T09:36:12.3785093Z         "impl": {
2026-06-16T09:36:12.3785255Z           "complete": false,
2026-06-16T09:36:12.3785407Z           "evidence": []
2026-06-16T09:36:12.3785537Z         },
2026-06-16T09:36:12.3785660Z         "int": {
2026-06-16T09:36:12.3785819Z           "complete": true,
2026-06-16T09:36:12.3785960Z           "evidence": [
2026-06-16T09:36:12.3786100Z             {
2026-06-16T09:36:12.3786352Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-16T09:36:12.3786496Z               "line": 14
2026-06-16T09:36:12.3786632Z             }
2026-06-16T09:36:12.3786751Z           ]
2026-06-16T09:36:12.3786888Z         },
2026-06-16T09:36:12.3787020Z         "unit": {
2026-06-16T09:36:12.3787193Z           "complete": false,
2026-06-16T09:36:12.3787344Z           "evidence": []
2026-06-16T09:36:12.3787474Z         }
2026-06-16T09:36:12.3787602Z       }
2026-06-16T09:36:12.3787727Z     },
2026-06-16T09:36:12.3787865Z     {
2026-06-16T09:36:12.3788018Z       "id": "REQ-DOCS-3",
2026-06-16T09:36:12.3788400Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-16T09:36:12.3788575Z       "requiredStages": [
2026-06-16T09:36:12.3788705Z         "doc"
2026-06-16T09:36:12.3788832Z       ],
2026-06-16T09:36:12.3789039Z       "stages": {
2026-06-16T09:36:12.3789180Z         "doc": {
2026-06-16T09:36:12.3789337Z           "complete": true,
2026-06-16T09:36:12.3789507Z           "evidence": [
2026-06-16T09:36:12.3789645Z             {
2026-06-16T09:36:12.3789836Z               "path": "docs-site/src/index.md",
2026-06-16T09:36:12.3789979Z               "line": 42
2026-06-16T09:36:12.3790108Z             }
2026-06-16T09:36:12.3790236Z           ]
2026-06-16T09:36:12.3790370Z         },
2026-06-16T09:36:12.3790507Z         "impl": {
2026-06-16T09:36:12.3790675Z           "complete": false,
2026-06-16T09:36:12.3790808Z           "evidence": []
2026-06-16T09:36:12.3790938Z         },
2026-06-16T09:36:12.3791085Z         "int": {
2026-06-16T09:36:12.3791238Z           "complete": false,
2026-06-16T09:36:12.3791390Z           "evidence": []
2026-06-16T09:36:12.3791519Z         },
2026-06-16T09:36:12.3791648Z         "unit": {
2026-06-16T09:36:12.3791804Z           "complete": false,
2026-06-16T09:36:12.3791954Z           "evidence": []
2026-06-16T09:36:12.3792085Z         }
2026-06-16T09:36:12.3792214Z       }
2026-06-16T09:36:12.3792334Z     },
2026-06-16T09:36:12.3792461Z     {
2026-06-16T09:36:12.3792610Z       "id": "REQ-DOCS-4",
2026-06-16T09:36:12.3793048Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-16T09:36:12.3793216Z       "requiredStages": [
2026-06-16T09:36:12.3793340Z         "doc",
2026-06-16T09:36:12.3793493Z         "impl",
2026-06-16T09:36:12.3793620Z         "unit"
2026-06-16T09:36:12.3793749Z       ],
2026-06-16T09:36:12.3793888Z       "stages": {
2026-06-16T09:36:12.3794025Z         "doc": {
2026-06-16T09:36:12.3794184Z           "complete": true,
2026-06-16T09:36:12.3794339Z           "evidence": [
2026-06-16T09:36:12.3794477Z             {
2026-06-16T09:36:12.3794671Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-16T09:36:12.3794824Z               "line": 35
2026-06-16T09:36:12.3794952Z             }
2026-06-16T09:36:12.3795091Z           ]
2026-06-16T09:36:12.3795220Z         },
2026-06-16T09:36:12.3795348Z         "impl": {
2026-06-16T09:36:12.3795500Z           "complete": true,
2026-06-16T09:36:12.3795643Z           "evidence": [
2026-06-16T09:36:12.3795768Z             {
2026-06-16T09:36:12.3796005Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.3796158Z               "line": 671
2026-06-16T09:36:12.3796297Z             },
2026-06-16T09:36:12.3796412Z             {
2026-06-16T09:36:12.3796741Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.3796888Z               "line": 15
2026-06-16T09:36:12.3797023Z             }
2026-06-16T09:36:12.3797159Z           ]
2026-06-16T09:36:12.3797393Z         },
2026-06-16T09:36:12.3797528Z         "int": {
2026-06-16T09:36:12.3797681Z           "complete": false,
2026-06-16T09:36:12.3797833Z           "evidence": []
2026-06-16T09:36:12.3797958Z         },
2026-06-16T09:36:12.3798087Z         "unit": {
2026-06-16T09:36:12.3798238Z           "complete": true,
2026-06-16T09:36:12.3798387Z           "evidence": [
2026-06-16T09:36:12.3798525Z             {
2026-06-16T09:36:12.3798768Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.3798921Z               "line": 1377
2026-06-16T09:36:12.3799256Z             }
2026-06-16T09:36:12.3799383Z           ]
2026-06-16T09:36:12.3799502Z         }
2026-06-16T09:36:12.3799637Z       }
2026-06-16T09:36:12.3799769Z     },
2026-06-16T09:36:12.3799897Z     {
2026-06-16T09:36:12.3800047Z       "id": "REQ-DOCS-5",
2026-06-16T09:36:12.3800496Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-16T09:36:12.3800663Z       "requiredStages": [
2026-06-16T09:36:12.3800800Z         "impl",
2026-06-16T09:36:12.3800925Z         "int"
2026-06-16T09:36:12.3801063Z       ],
2026-06-16T09:36:12.3801183Z       "stages": {
2026-06-16T09:36:12.3801311Z         "doc": {
2026-06-16T09:36:12.3801469Z           "complete": false,
2026-06-16T09:36:12.3801611Z           "evidence": []
2026-06-16T09:36:12.3801740Z         },
2026-06-16T09:36:12.3801884Z         "impl": {
2026-06-16T09:36:12.3802045Z           "complete": true,
2026-06-16T09:36:12.3802189Z           "evidence": [
2026-06-16T09:36:12.3802332Z             {
2026-06-16T09:36:12.3802574Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.3802731Z               "line": 672
2026-06-16T09:36:12.3802860Z             },
2026-06-16T09:36:12.3803002Z             {
2026-06-16T09:36:12.3803208Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.3803360Z               "line": 113
2026-06-16T09:36:12.3803490Z             }
2026-06-16T09:36:12.3803618Z           ]
2026-06-16T09:36:12.3803747Z         },
2026-06-16T09:36:12.3803870Z         "int": {
2026-06-16T09:36:12.3804028Z           "complete": true,
2026-06-16T09:36:12.3804180Z           "evidence": [
2026-06-16T09:36:12.3804309Z             {
2026-06-16T09:36:12.3804505Z               "path": ".github/workflows/ci.yml",
2026-06-16T09:36:12.3804643Z               "line": 126
2026-06-16T09:36:12.3804768Z             },
2026-06-16T09:36:12.3804890Z             {
2026-06-16T09:36:12.3805141Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.3805283Z               "line": 1414
2026-06-16T09:36:12.3805417Z             }
2026-06-16T09:36:12.3805545Z           ]
2026-06-16T09:36:12.3805660Z         },
2026-06-16T09:36:12.3805799Z         "unit": {
2026-06-16T09:36:12.3805966Z           "complete": false,
2026-06-16T09:36:12.3806118Z           "evidence": []
2026-06-16T09:36:12.3806242Z         }
2026-06-16T09:36:12.3806362Z       }
2026-06-16T09:36:12.3806489Z     },
2026-06-16T09:36:12.3806614Z     {
2026-06-16T09:36:12.3806781Z       "id": "REQ-DOCS-6",
2026-06-16T09:36:12.3807578Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-16T09:36:12.3807738Z       "requiredStages": [
2026-06-16T09:36:12.3807872Z         "impl",
2026-06-16T09:36:12.3807995Z         "unit",
2026-06-16T09:36:12.3808126Z         "int"
2026-06-16T09:36:12.3808251Z       ],
2026-06-16T09:36:12.3808393Z       "stages": {
2026-06-16T09:36:12.3808527Z         "doc": {
2026-06-16T09:36:12.3808680Z           "complete": true,
2026-06-16T09:36:12.3808842Z           "evidence": [
2026-06-16T09:36:12.3809104Z             {
2026-06-16T09:36:12.3809371Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-16T09:36:12.3809667Z               "line": 4
2026-06-16T09:36:12.3809806Z             }
2026-06-16T09:36:12.3809938Z           ]
2026-06-16T09:36:12.3810067Z         },
2026-06-16T09:36:12.3810211Z         "impl": {
2026-06-16T09:36:12.3810467Z           "complete": true,
2026-06-16T09:36:12.3810622Z           "evidence": [
2026-06-16T09:36:12.3810751Z             {
2026-06-16T09:36:12.3810946Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3811094Z               "line": 4870
2026-06-16T09:36:12.3811223Z             }
2026-06-16T09:36:12.3811356Z           ]
2026-06-16T09:36:12.3811480Z         },
2026-06-16T09:36:12.3811613Z         "int": {
2026-06-16T09:36:12.3811763Z           "complete": true,
2026-06-16T09:36:12.3811919Z           "evidence": [
2026-06-16T09:36:12.3812043Z             {
2026-06-16T09:36:12.3812276Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-16T09:36:12.3812425Z               "line": 39
2026-06-16T09:36:12.3812553Z             }
2026-06-16T09:36:12.3812692Z           ]
2026-06-16T09:36:12.3812819Z         },
2026-06-16T09:36:12.3812959Z         "unit": {
2026-06-16T09:36:12.3813120Z           "complete": true,
2026-06-16T09:36:12.3813262Z           "evidence": [
2026-06-16T09:36:12.3813402Z             {
2026-06-16T09:36:12.3813596Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3813749Z               "line": 9551
2026-06-16T09:36:12.3813877Z             }
2026-06-16T09:36:12.3814002Z           ]
2026-06-16T09:36:12.3814135Z         }
2026-06-16T09:36:12.3814264Z       }
2026-06-16T09:36:12.3814403Z     },
2026-06-16T09:36:12.3814526Z     {
2026-06-16T09:36:12.3814689Z       "id": "REQ-ELEVATE-1",
2026-06-16T09:36:12.3822727Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-16T09:36:12.3822952Z       "requiredStages": [
2026-06-16T09:36:12.3823094Z         "doc",
2026-06-16T09:36:12.3823233Z         "impl",
2026-06-16T09:36:12.3823365Z         "unit"
2026-06-16T09:36:12.3823500Z       ],
2026-06-16T09:36:12.3823629Z       "stages": {
2026-06-16T09:36:12.3823784Z         "doc": {
2026-06-16T09:36:12.3823937Z           "complete": true,
2026-06-16T09:36:12.3824089Z           "evidence": [
2026-06-16T09:36:12.3824214Z             {
2026-06-16T09:36:12.3824385Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.3824544Z               "line": 632
2026-06-16T09:36:12.3824672Z             }
2026-06-16T09:36:12.3824810Z           ]
2026-06-16T09:36:12.3824939Z         },
2026-06-16T09:36:12.3825081Z         "impl": {
2026-06-16T09:36:12.3825225Z           "complete": true,
2026-06-16T09:36:12.3825367Z           "evidence": [
2026-06-16T09:36:12.3825498Z             {
2026-06-16T09:36:12.3825687Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3825841Z               "line": 3258
2026-06-16T09:36:12.3825973Z             },
2026-06-16T09:36:12.3826110Z             {
2026-06-16T09:36:12.3826304Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3826447Z               "line": 3303
2026-06-16T09:36:12.3826581Z             },
2026-06-16T09:36:12.3826834Z             {
2026-06-16T09:36:12.3827023Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3827172Z               "line": 3365
2026-06-16T09:36:12.3827309Z             },
2026-06-16T09:36:12.3827538Z             {
2026-06-16T09:36:12.3827749Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.3827887Z               "line": 92
2026-06-16T09:36:12.3828020Z             },
2026-06-16T09:36:12.3828154Z             {
2026-06-16T09:36:12.3828355Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.3828511Z               "line": 148
2026-06-16T09:36:12.3828645Z             }
2026-06-16T09:36:12.3828770Z           ]
2026-06-16T09:36:12.3828901Z         },
2026-06-16T09:36:12.3829152Z         "int": {
2026-06-16T09:36:12.3829314Z           "complete": false,
2026-06-16T09:36:12.3829472Z           "evidence": []
2026-06-16T09:36:12.3829590Z         },
2026-06-16T09:36:12.3829720Z         "unit": {
2026-06-16T09:36:12.3829880Z           "complete": true,
2026-06-16T09:36:12.3830025Z           "evidence": [
2026-06-16T09:36:12.3830153Z             {
2026-06-16T09:36:12.3830364Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.3830505Z               "line": 442
2026-06-16T09:36:12.3830635Z             },
2026-06-16T09:36:12.3830762Z             {
2026-06-16T09:36:12.3830974Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.3831121Z               "line": 460
2026-06-16T09:36:12.3831251Z             }
2026-06-16T09:36:12.3831378Z           ]
2026-06-16T09:36:12.3831501Z         }
2026-06-16T09:36:12.3831635Z       }
2026-06-16T09:36:12.3831766Z     },
2026-06-16T09:36:12.3831895Z     {
2026-06-16T09:36:12.3832048Z       "id": "REQ-EP-1",
2026-06-16T09:36:12.3832310Z       "title": "Day-one endpoint types; open type system",
2026-06-16T09:36:12.3832471Z       "requiredStages": [
2026-06-16T09:36:12.3832596Z         "impl",
2026-06-16T09:36:12.3832728Z         "unit"
2026-06-16T09:36:12.3832868Z       ],
2026-06-16T09:36:12.3833001Z       "stages": {
2026-06-16T09:36:12.3833144Z         "doc": {
2026-06-16T09:36:12.3833301Z           "complete": false,
2026-06-16T09:36:12.3833444Z           "evidence": []
2026-06-16T09:36:12.3833583Z         },
2026-06-16T09:36:12.3833721Z         "impl": {
2026-06-16T09:36:12.3833875Z           "complete": true,
2026-06-16T09:36:12.3834021Z           "evidence": [
2026-06-16T09:36:12.3834151Z             {
2026-06-16T09:36:12.3834396Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3838605Z               "line": 77
2026-06-16T09:36:12.3838771Z             },
2026-06-16T09:36:12.3838900Z             {
2026-06-16T09:36:12.3839273Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3839419Z               "line": 94
2026-06-16T09:36:12.3839542Z             }
2026-06-16T09:36:12.3839670Z           ]
2026-06-16T09:36:12.3839797Z         },
2026-06-16T09:36:12.3839926Z         "int": {
2026-06-16T09:36:12.3840098Z           "complete": false,
2026-06-16T09:36:12.3840251Z           "evidence": []
2026-06-16T09:36:12.3840379Z         },
2026-06-16T09:36:12.3840508Z         "unit": {
2026-06-16T09:36:12.3840661Z           "complete": true,
2026-06-16T09:36:12.3840799Z           "evidence": [
2026-06-16T09:36:12.3840924Z             {
2026-06-16T09:36:12.3841162Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3841318Z               "line": 161
2026-06-16T09:36:12.3841443Z             },
2026-06-16T09:36:12.3841582Z             {
2026-06-16T09:36:12.3841821Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3841971Z               "line": 178
2026-06-16T09:36:12.3842094Z             }
2026-06-16T09:36:12.3842218Z           ]
2026-06-16T09:36:12.3842345Z         }
2026-06-16T09:36:12.3842474Z       }
2026-06-16T09:36:12.3842599Z     },
2026-06-16T09:36:12.3842721Z     {
2026-06-16T09:36:12.3842870Z       "id": "REQ-EP-2",
2026-06-16T09:36:12.3843223Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-16T09:36:12.3843556Z       "requiredStages": [
2026-06-16T09:36:12.3843699Z         "impl",
2026-06-16T09:36:12.3843828Z         "unit"
2026-06-16T09:36:12.3843956Z       ],
2026-06-16T09:36:12.3844180Z       "stages": {
2026-06-16T09:36:12.3844319Z         "doc": {
2026-06-16T09:36:12.3844463Z           "complete": false,
2026-06-16T09:36:12.3844615Z           "evidence": []
2026-06-16T09:36:12.3844745Z         },
2026-06-16T09:36:12.3844871Z         "impl": {
2026-06-16T09:36:12.3845034Z           "complete": true,
2026-06-16T09:36:12.3845181Z           "evidence": [
2026-06-16T09:36:12.3845310Z             {
2026-06-16T09:36:12.3845548Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3845697Z               "line": 114
2026-06-16T09:36:12.3845839Z             },
2026-06-16T09:36:12.3845968Z             {
2026-06-16T09:36:12.3846211Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3846360Z               "line": 131
2026-06-16T09:36:12.3846497Z             },
2026-06-16T09:36:12.3846622Z             {
2026-06-16T09:36:12.3846860Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3847004Z               "line": 138
2026-06-16T09:36:12.3847136Z             }
2026-06-16T09:36:12.3847259Z           ]
2026-06-16T09:36:12.3847386Z         },
2026-06-16T09:36:12.3847523Z         "int": {
2026-06-16T09:36:12.3847682Z           "complete": false,
2026-06-16T09:36:12.3847823Z           "evidence": []
2026-06-16T09:36:12.3847954Z         },
2026-06-16T09:36:12.3848081Z         "unit": {
2026-06-16T09:36:12.3848240Z           "complete": true,
2026-06-16T09:36:12.3848386Z           "evidence": [
2026-06-16T09:36:12.3848516Z             {
2026-06-16T09:36:12.3848754Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3848903Z               "line": 190
2026-06-16T09:36:12.3849131Z             },
2026-06-16T09:36:12.3849255Z             {
2026-06-16T09:36:12.3849490Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3849631Z               "line": 208
2026-06-16T09:36:12.3849756Z             },
2026-06-16T09:36:12.3849880Z             {
2026-06-16T09:36:12.3850112Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-16T09:36:12.3850263Z               "line": 221
2026-06-16T09:36:12.3850390Z             }
2026-06-16T09:36:12.3850525Z           ]
2026-06-16T09:36:12.3850648Z         }
2026-06-16T09:36:12.3850783Z       }
2026-06-16T09:36:12.3850902Z     },
2026-06-16T09:36:12.3851024Z     {
2026-06-16T09:36:12.3851178Z       "id": "REQ-EP-3",
2026-06-16T09:36:12.3851583Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-16T09:36:12.3851756Z       "requiredStages": [
2026-06-16T09:36:12.3851892Z         "impl",
2026-06-16T09:36:12.3852032Z         "unit"
2026-06-16T09:36:12.3852151Z       ],
2026-06-16T09:36:12.3852284Z       "stages": {
2026-06-16T09:36:12.3852414Z         "doc": {
2026-06-16T09:36:12.3852574Z           "complete": false,
2026-06-16T09:36:12.3852726Z           "evidence": []
2026-06-16T09:36:12.3852853Z         },
2026-06-16T09:36:12.3852986Z         "impl": {
2026-06-16T09:36:12.3853140Z           "complete": true,
2026-06-16T09:36:12.3853291Z           "evidence": [
2026-06-16T09:36:12.3853416Z             {
2026-06-16T09:36:12.3853655Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-16T09:36:12.3853807Z               "line": 31
2026-06-16T09:36:12.3853935Z             },
2026-06-16T09:36:12.3854069Z             {
2026-06-16T09:36:12.3854299Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-16T09:36:12.3854431Z               "line": 49
2026-06-16T09:36:12.3854565Z             }
2026-06-16T09:36:12.3854689Z           ]
2026-06-16T09:36:12.3854817Z         },
2026-06-16T09:36:12.3854942Z         "int": {
2026-06-16T09:36:12.3855098Z           "complete": false,
2026-06-16T09:36:12.3855238Z           "evidence": []
2026-06-16T09:36:12.3855488Z         },
2026-06-16T09:36:12.3855628Z         "unit": {
2026-06-16T09:36:12.3855779Z           "complete": true,
2026-06-16T09:36:12.3855928Z           "evidence": [
2026-06-16T09:36:12.3856056Z             {
2026-06-16T09:36:12.3856423Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-16T09:36:12.3856572Z               "line": 156
2026-06-16T09:36:12.3856709Z             },
2026-06-16T09:36:12.3856844Z             {
2026-06-16T09:36:12.3857071Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-16T09:36:12.3857221Z               "line": 164
2026-06-16T09:36:12.3857348Z             },
2026-06-16T09:36:12.3857483Z             {
2026-06-16T09:36:12.3857705Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-16T09:36:12.3857853Z               "line": 177
2026-06-16T09:36:12.3857979Z             },
2026-06-16T09:36:12.3858108Z             {
2026-06-16T09:36:12.3858346Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-16T09:36:12.3858495Z               "line": 200
2026-06-16T09:36:12.3858623Z             },
2026-06-16T09:36:12.3858752Z             {
2026-06-16T09:36:12.3859062Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-16T09:36:12.3859210Z               "line": 216
2026-06-16T09:36:12.3859347Z             },
2026-06-16T09:36:12.3859482Z             {
2026-06-16T09:36:12.3859711Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-16T09:36:12.3859862Z               "line": 233
2026-06-16T09:36:12.3859986Z             }
2026-06-16T09:36:12.3860116Z           ]
2026-06-16T09:36:12.3860239Z         }
2026-06-16T09:36:12.3860359Z       }
2026-06-16T09:36:12.3860482Z     },
2026-06-16T09:36:12.3860605Z     {
2026-06-16T09:36:12.3860753Z       "id": "REQ-EP-4",
2026-06-16T09:36:12.3861056Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-16T09:36:12.3861213Z       "requiredStages": [
2026-06-16T09:36:12.3861348Z         "impl",
2026-06-16T09:36:12.3861476Z         "unit"
2026-06-16T09:36:12.3861614Z       ],
2026-06-16T09:36:12.3861743Z       "stages": {
2026-06-16T09:36:12.3861871Z         "doc": {
2026-06-16T09:36:12.3862024Z           "complete": false,
2026-06-16T09:36:12.3862172Z           "evidence": []
2026-06-16T09:36:12.3862307Z         },
2026-06-16T09:36:12.3862429Z         "impl": {
2026-06-16T09:36:12.3862583Z           "complete": true,
2026-06-16T09:36:12.3862725Z           "evidence": [
2026-06-16T09:36:12.3862853Z             {
2026-06-16T09:36:12.3863077Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.3863229Z               "line": 717
2026-06-16T09:36:12.3863362Z             },
2026-06-16T09:36:12.3863484Z             {
2026-06-16T09:36:12.3863705Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.3863856Z               "line": 1048
2026-06-16T09:36:12.3863995Z             },
2026-06-16T09:36:12.3864118Z             {
2026-06-16T09:36:12.3864353Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3864505Z               "line": 1359
2026-06-16T09:36:12.3864625Z             },
2026-06-16T09:36:12.3864753Z             {
2026-06-16T09:36:12.3864968Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.3865115Z               "line": 118
2026-06-16T09:36:12.3865249Z             },
2026-06-16T09:36:12.3865382Z             {
2026-06-16T09:36:12.3865602Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.3865750Z               "line": 609
2026-06-16T09:36:12.3865884Z             },
2026-06-16T09:36:12.3866015Z             {
2026-06-16T09:36:12.3866250Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.3866406Z               "line": 734
2026-06-16T09:36:12.3866540Z             },
2026-06-16T09:36:12.3866668Z             {
2026-06-16T09:36:12.3866913Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3867069Z               "line": 254
2026-06-16T09:36:12.3867193Z             },
2026-06-16T09:36:12.3867321Z             {
2026-06-16T09:36:12.3867670Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3867819Z               "line": 441
2026-06-16T09:36:12.3867951Z             },
2026-06-16T09:36:12.3868077Z             {
2026-06-16T09:36:12.3868403Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.3868553Z               "line": 1164
2026-06-16T09:36:12.3868678Z             }
2026-06-16T09:36:12.3868803Z           ]
2026-06-16T09:36:12.3868925Z         },
2026-06-16T09:36:12.3869131Z         "int": {
2026-06-16T09:36:12.3869282Z           "complete": false,
2026-06-16T09:36:12.3869436Z           "evidence": []
2026-06-16T09:36:12.3869559Z         },
2026-06-16T09:36:12.3869689Z         "unit": {
2026-06-16T09:36:12.3869841Z           "complete": true,
2026-06-16T09:36:12.3869970Z           "evidence": [
2026-06-16T09:36:12.3870098Z             {
2026-06-16T09:36:12.3870300Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.3870451Z               "line": 825
2026-06-16T09:36:12.3870581Z             },
2026-06-16T09:36:12.3870709Z             {
2026-06-16T09:36:12.3870963Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-16T09:36:12.3871108Z               "line": 76
2026-06-16T09:36:12.3871242Z             },
2026-06-16T09:36:12.3871364Z             {
2026-06-16T09:36:12.3871617Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-16T09:36:12.3871750Z               "line": 147
2026-06-16T09:36:12.3871883Z             }
2026-06-16T09:36:12.3872017Z           ]
2026-06-16T09:36:12.3872145Z         }
2026-06-16T09:36:12.3872275Z       }
2026-06-16T09:36:12.3872398Z     },
2026-06-16T09:36:12.3872518Z     {
2026-06-16T09:36:12.3872665Z       "id": "REQ-EP-5",
2026-06-16T09:36:12.3874382Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-16T09:36:12.3874555Z       "requiredStages": [
2026-06-16T09:36:12.3874688Z         "impl",
2026-06-16T09:36:12.3874822Z         "unit",
2026-06-16T09:36:12.3874951Z         "int"
2026-06-16T09:36:12.3875075Z       ],
2026-06-16T09:36:12.3875218Z       "stages": {
2026-06-16T09:36:12.3875351Z         "doc": {
2026-06-16T09:36:12.3875514Z           "complete": false,
2026-06-16T09:36:12.3875661Z           "evidence": []
2026-06-16T09:36:12.3875786Z         },
2026-06-16T09:36:12.3875919Z         "impl": {
2026-06-16T09:36:12.3876077Z           "complete": true,
2026-06-16T09:36:12.3876223Z           "evidence": [
2026-06-16T09:36:12.3876358Z             {
2026-06-16T09:36:12.3876623Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.3876772Z               "line": 367
2026-06-16T09:36:12.3876909Z             },
2026-06-16T09:36:12.3877034Z             {
2026-06-16T09:36:12.3877291Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-16T09:36:12.3877444Z               "line": 18
2026-06-16T09:36:12.3877576Z             },
2026-06-16T09:36:12.3877711Z             {
2026-06-16T09:36:12.3877949Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-16T09:36:12.3878106Z               "line": 63
2026-06-16T09:36:12.3878235Z             },
2026-06-16T09:36:12.3878374Z             {
2026-06-16T09:36:12.3878618Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-16T09:36:12.3878764Z               "line": 92
2026-06-16T09:36:12.3878901Z             },
2026-06-16T09:36:12.3879104Z             {
2026-06-16T09:36:12.3879348Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-16T09:36:12.3879500Z               "line": 167
2026-06-16T09:36:12.3879639Z             },
2026-06-16T09:36:12.3879771Z             {
2026-06-16T09:36:12.3880010Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-16T09:36:12.3880167Z               "line": 179
2026-06-16T09:36:12.3880292Z             },
2026-06-16T09:36:12.3880559Z             {
2026-06-16T09:36:12.3880797Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.3880950Z               "line": 114
2026-06-16T09:36:12.3881087Z             },
2026-06-16T09:36:12.3881218Z             {
2026-06-16T09:36:12.3881566Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.3881712Z               "line": 22
2026-06-16T09:36:12.3881845Z             },
2026-06-16T09:36:12.3881971Z             {
2026-06-16T09:36:12.3882215Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.3882362Z               "line": 145
2026-06-16T09:36:12.3882492Z             },
2026-06-16T09:36:12.3882620Z             {
2026-06-16T09:36:12.3882849Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.3883001Z               "line": 174
2026-06-16T09:36:12.3883126Z             },
2026-06-16T09:36:12.3883254Z             {
2026-06-16T09:36:12.3883488Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.3883645Z               "line": 196
2026-06-16T09:36:12.3883765Z             },
2026-06-16T09:36:12.3883892Z             {
2026-06-16T09:36:12.3884132Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.3884287Z               "line": 221
2026-06-16T09:36:12.3884417Z             },
2026-06-16T09:36:12.3884548Z             {
2026-06-16T09:36:12.3884777Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.3884929Z               "line": 247
2026-06-16T09:36:12.3885058Z             },
2026-06-16T09:36:12.3885186Z             {
2026-06-16T09:36:12.3885420Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.3885577Z               "line": 270
2026-06-16T09:36:12.3885711Z             },
2026-06-16T09:36:12.3885840Z             {
2026-06-16T09:36:12.3886069Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3886216Z               "line": 100
2026-06-16T09:36:12.3886346Z             },
2026-06-16T09:36:12.3886474Z             {
2026-06-16T09:36:12.3886666Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3886822Z               "line": 5405
2026-06-16T09:36:12.3886948Z             },
2026-06-16T09:36:12.3887088Z             {
2026-06-16T09:36:12.3887275Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3887427Z               "line": 5539
2026-06-16T09:36:12.3887575Z             },
2026-06-16T09:36:12.3887699Z             {
2026-06-16T09:36:12.3887890Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3888033Z               "line": 5705
2026-06-16T09:36:12.3888166Z             },
2026-06-16T09:36:12.3888295Z             {
2026-06-16T09:36:12.3888485Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3888638Z               "line": 6233
2026-06-16T09:36:12.3888761Z             }
2026-06-16T09:36:12.3888886Z           ]
2026-06-16T09:36:12.3889086Z         },
2026-06-16T09:36:12.3889216Z         "int": {
2026-06-16T09:36:12.3889380Z           "complete": true,
2026-06-16T09:36:12.3889528Z           "evidence": [
2026-06-16T09:36:12.3889665Z             {
2026-06-16T09:36:12.3889908Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-16T09:36:12.3890060Z               "line": 16
2026-06-16T09:36:12.3890185Z             },
2026-06-16T09:36:12.3890318Z             {
2026-06-16T09:36:12.3890528Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-16T09:36:12.3890670Z               "line": 15
2026-06-16T09:36:12.3890800Z             }
2026-06-16T09:36:12.3890919Z           ]
2026-06-16T09:36:12.3891052Z         },
2026-06-16T09:36:12.3891181Z         "unit": {
2026-06-16T09:36:12.3891342Z           "complete": true,
2026-06-16T09:36:12.3891487Z           "evidence": [
2026-06-16T09:36:12.3891628Z             {
2026-06-16T09:36:12.3891885Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-16T09:36:12.3892026Z               "line": 246
2026-06-16T09:36:12.3892168Z             },
2026-06-16T09:36:12.3892405Z             {
2026-06-16T09:36:12.3892650Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-16T09:36:12.3892804Z               "line": 306
2026-06-16T09:36:12.3892936Z             },
2026-06-16T09:36:12.3893166Z             {
2026-06-16T09:36:12.3893409Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-16T09:36:12.3893556Z               "line": 363
2026-06-16T09:36:12.3893681Z             },
2026-06-16T09:36:12.3893810Z             {
2026-06-16T09:36:12.3894044Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.3894195Z               "line": 286
2026-06-16T09:36:12.3894325Z             },
2026-06-16T09:36:12.3894443Z             {
2026-06-16T09:36:12.3894683Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.3894829Z               "line": 338
2026-06-16T09:36:12.3894962Z             },
2026-06-16T09:36:12.3895084Z             {
2026-06-16T09:36:12.3895313Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.3895470Z               "line": 779
2026-06-16T09:36:12.3895605Z             },
2026-06-16T09:36:12.3895728Z             {
2026-06-16T09:36:12.3895919Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3896075Z               "line": 7577
2026-06-16T09:36:12.3896200Z             },
2026-06-16T09:36:12.3896333Z             {
2026-06-16T09:36:12.3896524Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3896662Z               "line": 7730
2026-06-16T09:36:12.3896795Z             },
2026-06-16T09:36:12.3896925Z             {
2026-06-16T09:36:12.3897110Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3897258Z               "line": 8319
2026-06-16T09:36:12.3897387Z             },
2026-06-16T09:36:12.3897522Z             {
2026-06-16T09:36:12.3897696Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3897849Z               "line": 8435
2026-06-16T09:36:12.3897972Z             }
2026-06-16T09:36:12.3898111Z           ]
2026-06-16T09:36:12.3898235Z         }
2026-06-16T09:36:12.3898358Z       }
2026-06-16T09:36:12.3898483Z     },
2026-06-16T09:36:12.3898607Z     {
2026-06-16T09:36:12.3898759Z       "id": "REQ-EP-6",
2026-06-16T09:36:12.3902547Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-16T09:36:12.3902728Z       "requiredStages": [
2026-06-16T09:36:12.3902860Z         "doc",
2026-06-16T09:36:12.3902994Z         "impl",
2026-06-16T09:36:12.3903129Z         "unit"
2026-06-16T09:36:12.3903254Z       ],
2026-06-16T09:36:12.3903388Z       "stages": {
2026-06-16T09:36:12.3903544Z         "doc": {
2026-06-16T09:36:12.3903703Z           "complete": true,
2026-06-16T09:36:12.3903849Z           "evidence": [
2026-06-16T09:36:12.3903970Z             {
2026-06-16T09:36:12.3904135Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.3904289Z               "line": 208
2026-06-16T09:36:12.3904426Z             }
2026-06-16T09:36:12.3904552Z           ]
2026-06-16T09:36:12.3904674Z         },
2026-06-16T09:36:12.3904813Z         "impl": {
2026-06-16T09:36:12.3904956Z           "complete": true,
2026-06-16T09:36:12.3905104Z           "evidence": [
2026-06-16T09:36:12.3905234Z             {
2026-06-16T09:36:12.3905465Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.3905616Z               "line": 166
2026-06-16T09:36:12.3905744Z             }
2026-06-16T09:36:12.3905878Z           ]
2026-06-16T09:36:12.3906001Z         },
2026-06-16T09:36:12.3906140Z         "int": {
2026-06-16T09:36:12.3906288Z           "complete": true,
2026-06-16T09:36:12.3906584Z           "evidence": [
2026-06-16T09:36:12.3906712Z             {
2026-06-16T09:36:12.3906932Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-16T09:36:12.3907080Z               "line": 18
2026-06-16T09:36:12.3907212Z             }
2026-06-16T09:36:12.3907438Z           ]
2026-06-16T09:36:12.3907560Z         },
2026-06-16T09:36:12.3907705Z         "unit": {
2026-06-16T09:36:12.3907860Z           "complete": true,
2026-06-16T09:36:12.3908005Z           "evidence": [
2026-06-16T09:36:12.3908138Z             {
2026-06-16T09:36:12.3908375Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.3908523Z               "line": 551
2026-06-16T09:36:12.3908656Z             },
2026-06-16T09:36:12.3908786Z             {
2026-06-16T09:36:12.3909091Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.3909233Z               "line": 627
2026-06-16T09:36:12.3909354Z             }
2026-06-16T09:36:12.3909477Z           ]
2026-06-16T09:36:12.3909615Z         }
2026-06-16T09:36:12.3909749Z       }
2026-06-16T09:36:12.3909877Z     },
2026-06-16T09:36:12.3910003Z     {
2026-06-16T09:36:12.3910149Z       "id": "REQ-EP-7",
2026-06-16T09:36:12.3914253Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-16T09:36:12.3914434Z       "requiredStages": [
2026-06-16T09:36:12.3914563Z         "doc",
2026-06-16T09:36:12.3914695Z         "impl",
2026-06-16T09:36:12.3914821Z         "unit"
2026-06-16T09:36:12.3914954Z       ],
2026-06-16T09:36:12.3915073Z       "stages": {
2026-06-16T09:36:12.3915211Z         "doc": {
2026-06-16T09:36:12.3915369Z           "complete": true,
2026-06-16T09:36:12.3915517Z           "evidence": [
2026-06-16T09:36:12.3915640Z             {
2026-06-16T09:36:12.3915798Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.3915954Z               "line": 435
2026-06-16T09:36:12.3916082Z             }
2026-06-16T09:36:12.3916209Z           ]
2026-06-16T09:36:12.3916337Z         },
2026-06-16T09:36:12.3916477Z         "impl": {
2026-06-16T09:36:12.3916642Z           "complete": true,
2026-06-16T09:36:12.3916777Z           "evidence": [
2026-06-16T09:36:12.3916904Z             {
2026-06-16T09:36:12.3917115Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.3917267Z               "line": 505
2026-06-16T09:36:12.3917397Z             },
2026-06-16T09:36:12.3917525Z             {
2026-06-16T09:36:12.3917740Z               "path": "crates/spt-live/src/resume.rs",
2026-06-16T09:36:12.3917882Z               "line": 87
2026-06-16T09:36:12.3918022Z             },
2026-06-16T09:36:12.3918145Z             {
2026-06-16T09:36:12.3918402Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.3918555Z               "line": 81
2026-06-16T09:36:12.3918685Z             },
2026-06-16T09:36:12.3918826Z             {
2026-06-16T09:36:12.3919154Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.3919308Z               "line": 166
2026-06-16T09:36:12.3919440Z             },
2026-06-16T09:36:12.3919570Z             {
2026-06-16T09:36:12.3919750Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3919880Z               "line": 1490
2026-06-16T09:36:12.3920008Z             }
2026-06-16T09:36:12.3920137Z           ]
2026-06-16T09:36:12.3920262Z         },
2026-06-16T09:36:12.3920394Z         "int": {
2026-06-16T09:36:12.3920558Z           "complete": false,
2026-06-16T09:36:12.3920704Z           "evidence": []
2026-06-16T09:36:12.3920829Z         },
2026-06-16T09:36:12.3920966Z         "unit": {
2026-06-16T09:36:12.3921251Z           "complete": true,
2026-06-16T09:36:12.3921392Z           "evidence": [
2026-06-16T09:36:12.3921522Z             {
2026-06-16T09:36:12.3921744Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.3921984Z               "line": 623
2026-06-16T09:36:12.3922108Z             },
2026-06-16T09:36:12.3922242Z             {
2026-06-16T09:36:12.3922457Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.3922599Z               "line": 212
2026-06-16T09:36:12.3922723Z             },
2026-06-16T09:36:12.3922847Z             {
2026-06-16T09:36:12.3923067Z               "path": "crates/spt-live/src/resume.rs",
2026-06-16T09:36:12.3923214Z               "line": 307
2026-06-16T09:36:12.3923352Z             },
2026-06-16T09:36:12.3923472Z             {
2026-06-16T09:36:12.3923672Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3923811Z               "line": 6694
2026-06-16T09:36:12.3923937Z             },
2026-06-16T09:36:12.3924067Z             {
2026-06-16T09:36:12.3924259Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3924403Z               "line": 6721
2026-06-16T09:36:12.3924531Z             }
2026-06-16T09:36:12.3924665Z           ]
2026-06-16T09:36:12.3924780Z         }
2026-06-16T09:36:12.3924912Z       }
2026-06-16T09:36:12.3925042Z     },
2026-06-16T09:36:12.3925166Z     {
2026-06-16T09:36:12.3925323Z       "id": "REQ-FRONT-1",
2026-06-16T09:36:12.3925705Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-16T09:36:12.3925876Z       "requiredStages": [],
2026-06-16T09:36:12.3926015Z       "stages": {
2026-06-16T09:36:12.3926147Z         "doc": {
2026-06-16T09:36:12.3926307Z           "complete": false,
2026-06-16T09:36:12.3926448Z           "evidence": []
2026-06-16T09:36:12.3926580Z         },
2026-06-16T09:36:12.3926713Z         "impl": {
2026-06-16T09:36:12.3926874Z           "complete": false,
2026-06-16T09:36:12.3927022Z           "evidence": []
2026-06-16T09:36:12.3927164Z         },
2026-06-16T09:36:12.3927285Z         "int": {
2026-06-16T09:36:12.3927432Z           "complete": false,
2026-06-16T09:36:12.3927590Z           "evidence": []
2026-06-16T09:36:12.3927714Z         },
2026-06-16T09:36:12.3927856Z         "unit": {
2026-06-16T09:36:12.3928009Z           "complete": false,
2026-06-16T09:36:12.3928157Z           "evidence": []
2026-06-16T09:36:12.3928291Z         }
2026-06-16T09:36:12.3928409Z       }
2026-06-16T09:36:12.3928544Z     },
2026-06-16T09:36:12.3928666Z     {
2026-06-16T09:36:12.3928883Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-16T09:36:12.3935167Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-16T09:36:12.3935378Z       "requiredStages": [
2026-06-16T09:36:12.3935505Z         "doc",
2026-06-16T09:36:12.3935645Z         "impl",
2026-06-16T09:36:12.3935763Z         "unit",
2026-06-16T09:36:12.3935888Z         "int"
2026-06-16T09:36:12.3936017Z       ],
2026-06-16T09:36:12.3936159Z       "stages": {
2026-06-16T09:36:12.3936298Z         "doc": {
2026-06-16T09:36:12.3936445Z           "complete": true,
2026-06-16T09:36:12.3936589Z           "evidence": [
2026-06-16T09:36:12.3936707Z             {
2026-06-16T09:36:12.3936909Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.3937189Z               "line": 326
2026-06-16T09:36:12.3937315Z             }
2026-06-16T09:36:12.3937438Z           ]
2026-06-16T09:36:12.3937569Z         },
2026-06-16T09:36:12.3937705Z         "impl": {
2026-06-16T09:36:12.3937955Z           "complete": true,
2026-06-16T09:36:12.3938101Z           "evidence": [
2026-06-16T09:36:12.3938231Z             {
2026-06-16T09:36:12.3938488Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3938636Z               "line": 494
2026-06-16T09:36:12.3938765Z             },
2026-06-16T09:36:12.3938903Z             {
2026-06-16T09:36:12.3939227Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3939370Z               "line": 499
2026-06-16T09:36:12.3939499Z             },
2026-06-16T09:36:12.3939632Z             {
2026-06-16T09:36:12.3939866Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3940012Z               "line": 874
2026-06-16T09:36:12.3940142Z             },
2026-06-16T09:36:12.3940270Z             {
2026-06-16T09:36:12.3940519Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3940656Z               "line": 915
2026-06-16T09:36:12.3940799Z             },
2026-06-16T09:36:12.3940928Z             {
2026-06-16T09:36:12.3941157Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3941305Z               "line": 926
2026-06-16T09:36:12.3941434Z             },
2026-06-16T09:36:12.3941567Z             {
2026-06-16T09:36:12.3941800Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.3941954Z               "line": 358
2026-06-16T09:36:12.3942082Z             }
2026-06-16T09:36:12.3942205Z           ]
2026-06-16T09:36:12.3942324Z         },
2026-06-16T09:36:12.3942455Z         "int": {
2026-06-16T09:36:12.3942613Z           "complete": true,
2026-06-16T09:36:12.3942761Z           "evidence": [
2026-06-16T09:36:12.3942889Z             {
2026-06-16T09:36:12.3943161Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-16T09:36:12.3943305Z               "line": 30
2026-06-16T09:36:12.3943442Z             }
2026-06-16T09:36:12.3943562Z           ]
2026-06-16T09:36:12.3943705Z         },
2026-06-16T09:36:12.3943829Z         "unit": {
2026-06-16T09:36:12.3943991Z           "complete": true,
2026-06-16T09:36:12.3944129Z           "evidence": [
2026-06-16T09:36:12.3944254Z             {
2026-06-16T09:36:12.3944502Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3944639Z               "line": 1467
2026-06-16T09:36:12.3944773Z             },
2026-06-16T09:36:12.3944894Z             {
2026-06-16T09:36:12.3945139Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3945290Z               "line": 1492
2026-06-16T09:36:12.3945422Z             },
2026-06-16T09:36:12.3945552Z             {
2026-06-16T09:36:12.3945790Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3945943Z               "line": 1509
2026-06-16T09:36:12.3946066Z             },
2026-06-16T09:36:12.3946200Z             {
2026-06-16T09:36:12.3946434Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3946572Z               "line": 1552
2026-06-16T09:36:12.3946696Z             }
2026-06-16T09:36:12.3946825Z           ]
2026-06-16T09:36:12.3946953Z         }
2026-06-16T09:36:12.3947078Z       }
2026-06-16T09:36:12.3947206Z     },
2026-06-16T09:36:12.3947335Z     {
2026-06-16T09:36:12.3947568Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-16T09:36:12.3953931Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-16T09:36:12.3954331Z       "requiredStages": [
2026-06-16T09:36:12.3954471Z         "doc",
2026-06-16T09:36:12.3954604Z         "impl",
2026-06-16T09:36:12.3954737Z         "unit",
2026-06-16T09:36:12.3954866Z         "int"
2026-06-16T09:36:12.3954989Z       ],
2026-06-16T09:36:12.3955120Z       "stages": {
2026-06-16T09:36:12.3955256Z         "doc": {
2026-06-16T09:36:12.3955401Z           "complete": true,
2026-06-16T09:36:12.3955542Z           "evidence": [
2026-06-16T09:36:12.3955665Z             {
2026-06-16T09:36:12.3955855Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.3956006Z               "line": 295
2026-06-16T09:36:12.3956131Z             }
2026-06-16T09:36:12.3956254Z           ]
2026-06-16T09:36:12.3956384Z         },
2026-06-16T09:36:12.3956527Z         "impl": {
2026-06-16T09:36:12.3956689Z           "complete": true,
2026-06-16T09:36:12.3956832Z           "evidence": [
2026-06-16T09:36:12.3956965Z             {
2026-06-16T09:36:12.3957198Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.3957343Z               "line": 108
2026-06-16T09:36:12.3957470Z             },
2026-06-16T09:36:12.3957594Z             {
2026-06-16T09:36:12.3957823Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.3957967Z               "line": 794
2026-06-16T09:36:12.3958090Z             },
2026-06-16T09:36:12.3958217Z             {
2026-06-16T09:36:12.3958440Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.3958583Z               "line": 994
2026-06-16T09:36:12.3958703Z             },
2026-06-16T09:36:12.3958845Z             {
2026-06-16T09:36:12.3959145Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3959289Z               "line": 23
2026-06-16T09:36:12.3959413Z             },
2026-06-16T09:36:12.3959561Z             {
2026-06-16T09:36:12.3959808Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3959952Z               "line": 113
2026-06-16T09:36:12.3960085Z             },
2026-06-16T09:36:12.3960210Z             {
2026-06-16T09:36:12.3960447Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3960591Z               "line": 158
2026-06-16T09:36:12.3960724Z             },
2026-06-16T09:36:12.3960844Z             {
2026-06-16T09:36:12.3961080Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3961219Z               "line": 218
2026-06-16T09:36:12.3961357Z             },
2026-06-16T09:36:12.3961481Z             {
2026-06-16T09:36:12.3965007Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3965220Z               "line": 261
2026-06-16T09:36:12.3965350Z             },
2026-06-16T09:36:12.3965482Z             {
2026-06-16T09:36:12.3965737Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3965888Z               "line": 275
2026-06-16T09:36:12.3966023Z             },
2026-06-16T09:36:12.3966145Z             {
2026-06-16T09:36:12.3966401Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3966552Z               "line": 320
2026-06-16T09:36:12.3966682Z             },
2026-06-16T09:36:12.3966814Z             {
2026-06-16T09:36:12.3967054Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3967200Z               "line": 347
2026-06-16T09:36:12.3967335Z             },
2026-06-16T09:36:12.3967458Z             {
2026-06-16T09:36:12.3967701Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3967849Z               "line": 359
2026-06-16T09:36:12.3968155Z             },
2026-06-16T09:36:12.3968284Z             {
2026-06-16T09:36:12.3968527Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3968664Z               "line": 373
2026-06-16T09:36:12.3968778Z             },
2026-06-16T09:36:12.3969090Z             {
2026-06-16T09:36:12.3969329Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3969472Z               "line": 400
2026-06-16T09:36:12.3969596Z             },
2026-06-16T09:36:12.3969720Z             {
2026-06-16T09:36:12.3969959Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3970102Z               "line": 643
2026-06-16T09:36:12.3970240Z             },
2026-06-16T09:36:12.3970369Z             {
2026-06-16T09:36:12.3970598Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3970751Z               "line": 972
2026-06-16T09:36:12.3970888Z             },
2026-06-16T09:36:12.3971012Z             {
2026-06-16T09:36:12.3971245Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3971395Z               "line": 178
2026-06-16T09:36:12.3971518Z             },
2026-06-16T09:36:12.3971640Z             {
2026-06-16T09:36:12.3971861Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3972003Z               "line": 590
2026-06-16T09:36:12.3972133Z             },
2026-06-16T09:36:12.3972260Z             {
2026-06-16T09:36:12.3972485Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3972632Z               "line": 662
2026-06-16T09:36:12.3972752Z             },
2026-06-16T09:36:12.3972880Z             {
2026-06-16T09:36:12.3973100Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3973247Z               "line": 674
2026-06-16T09:36:12.3973377Z             },
2026-06-16T09:36:12.3973509Z             {
2026-06-16T09:36:12.3973720Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3973866Z               "line": 1084
2026-06-16T09:36:12.3974000Z             },
2026-06-16T09:36:12.3974127Z             {
2026-06-16T09:36:12.3974351Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3974498Z               "line": 183
2026-06-16T09:36:12.3974646Z             },
2026-06-16T09:36:12.3974765Z             {
2026-06-16T09:36:12.3974985Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3975132Z               "line": 260
2026-06-16T09:36:12.3975267Z             },
2026-06-16T09:36:12.3975390Z             {
2026-06-16T09:36:12.3975619Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3975772Z               "line": 271
2026-06-16T09:36:12.3975897Z             },
2026-06-16T09:36:12.3976038Z             {
2026-06-16T09:36:12.3976259Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.3976411Z               "line": 297
2026-06-16T09:36:12.3976540Z             },
2026-06-16T09:36:12.3976668Z             {
2026-06-16T09:36:12.3976905Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.3977050Z               "line": 56
2026-06-16T09:36:12.3977175Z             },
2026-06-16T09:36:12.3977300Z             {
2026-06-16T09:36:12.3977543Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.3977685Z               "line": 188
2026-06-16T09:36:12.3977814Z             },
2026-06-16T09:36:12.3977948Z             {
2026-06-16T09:36:12.3978172Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-16T09:36:12.3978324Z               "line": 82
2026-06-16T09:36:12.3978449Z             },
2026-06-16T09:36:12.3978572Z             {
2026-06-16T09:36:12.3978811Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.3979035Z               "line": 258
2026-06-16T09:36:12.3979169Z             },
2026-06-16T09:36:12.3979291Z             {
2026-06-16T09:36:12.3979514Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.3979655Z               "line": 424
2026-06-16T09:36:12.3979903Z             },
2026-06-16T09:36:12.3980032Z             {
2026-06-16T09:36:12.3980223Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.3980376Z               "line": 1795
2026-06-16T09:36:12.3980599Z             }
2026-06-16T09:36:12.3980729Z           ]
2026-06-16T09:36:12.3980857Z         },
2026-06-16T09:36:12.3980986Z         "int": {
2026-06-16T09:36:12.3981138Z           "complete": true,
2026-06-16T09:36:12.3981286Z           "evidence": [
2026-06-16T09:36:12.3981411Z             {
2026-06-16T09:36:12.3981645Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-16T09:36:12.3981786Z               "line": 57
2026-06-16T09:36:12.3981916Z             },
2026-06-16T09:36:12.3982041Z             {
2026-06-16T09:36:12.3982258Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-16T09:36:12.3982397Z               "line": 41
2026-06-16T09:36:12.3982520Z             }
2026-06-16T09:36:12.3982645Z           ]
2026-06-16T09:36:12.3982778Z         },
2026-06-16T09:36:12.3982921Z         "unit": {
2026-06-16T09:36:12.3983069Z           "complete": true,
2026-06-16T09:36:12.3983217Z           "evidence": [
2026-06-16T09:36:12.3983336Z             {
2026-06-16T09:36:12.3983575Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.3983731Z               "line": 532
2026-06-16T09:36:12.3983856Z             },
2026-06-16T09:36:12.3983989Z             {
2026-06-16T09:36:12.3984224Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.3984375Z               "line": 755
2026-06-16T09:36:12.3984502Z             },
2026-06-16T09:36:12.3984635Z             {
2026-06-16T09:36:12.3984858Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3985011Z               "line": 1041
2026-06-16T09:36:12.3985130Z             },
2026-06-16T09:36:12.3985250Z             {
2026-06-16T09:36:12.3985488Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3985636Z               "line": 1075
2026-06-16T09:36:12.3985764Z             },
2026-06-16T09:36:12.3985888Z             {
2026-06-16T09:36:12.3986127Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3986274Z               "line": 1117
2026-06-16T09:36:12.3986403Z             },
2026-06-16T09:36:12.3986528Z             {
2026-06-16T09:36:12.3986767Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3986913Z               "line": 1189
2026-06-16T09:36:12.3987043Z             },
2026-06-16T09:36:12.3987167Z             {
2026-06-16T09:36:12.3987403Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3987549Z               "line": 1202
2026-06-16T09:36:12.3987672Z             },
2026-06-16T09:36:12.3987793Z             {
2026-06-16T09:36:12.3988025Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3988174Z               "line": 1225
2026-06-16T09:36:12.3988297Z             },
2026-06-16T09:36:12.3988432Z             {
2026-06-16T09:36:12.3988660Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3988808Z               "line": 1251
2026-06-16T09:36:12.3988936Z             },
2026-06-16T09:36:12.3989146Z             {
2026-06-16T09:36:12.3989376Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3989523Z               "line": 1265
2026-06-16T09:36:12.3989639Z             },
2026-06-16T09:36:12.3989762Z             {
2026-06-16T09:36:12.3989998Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3990130Z               "line": 1289
2026-06-16T09:36:12.3990273Z             },
2026-06-16T09:36:12.3990403Z             {
2026-06-16T09:36:12.3990631Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3990783Z               "line": 1421
2026-06-16T09:36:12.3990907Z             },
2026-06-16T09:36:12.3991031Z             {
2026-06-16T09:36:12.3991265Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3991541Z               "line": 1597
2026-06-16T09:36:12.3991670Z             },
2026-06-16T09:36:12.3991794Z             {
2026-06-16T09:36:12.3992032Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3992418Z               "line": 1652
2026-06-16T09:36:12.3992553Z             },
2026-06-16T09:36:12.3992680Z             {
2026-06-16T09:36:12.3992914Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3993047Z               "line": 1698
2026-06-16T09:36:12.3993166Z             },
2026-06-16T09:36:12.3993296Z             {
2026-06-16T09:36:12.3993525Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3993671Z               "line": 1743
2026-06-16T09:36:12.3993801Z             },
2026-06-16T09:36:12.3993929Z             {
2026-06-16T09:36:12.3994164Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3994311Z               "line": 1787
2026-06-16T09:36:12.3994450Z             },
2026-06-16T09:36:12.3994577Z             {
2026-06-16T09:36:12.3994827Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.3994968Z               "line": 1829
2026-06-16T09:36:12.3995096Z             },
2026-06-16T09:36:12.3995237Z             {
2026-06-16T09:36:12.3995452Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.3995604Z               "line": 1418
2026-06-16T09:36:12.3995733Z             },
2026-06-16T09:36:12.3995857Z             {
2026-06-16T09:36:12.3996101Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.3996248Z               "line": 217
2026-06-16T09:36:12.3996378Z             },
2026-06-16T09:36:12.3996496Z             {
2026-06-16T09:36:12.3996730Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.3996868Z               "line": 233
2026-06-16T09:36:12.3996992Z             },
2026-06-16T09:36:12.3997125Z             {
2026-06-16T09:36:12.3997360Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.3997516Z               "line": 254
2026-06-16T09:36:12.3997641Z             },
2026-06-16T09:36:12.3997774Z             {
2026-06-16T09:36:12.3998006Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.3998162Z               "line": 265
2026-06-16T09:36:12.3998300Z             },
2026-06-16T09:36:12.3998415Z             {
2026-06-16T09:36:12.3998648Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.3998795Z               "line": 278
2026-06-16T09:36:12.3998915Z             },
2026-06-16T09:36:12.3999120Z             {
2026-06-16T09:36:12.3999358Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.3999501Z               "line": 289
2026-06-16T09:36:12.3999621Z             },
2026-06-16T09:36:12.3999754Z             {
2026-06-16T09:36:12.3999979Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.4000126Z               "line": 301
2026-06-16T09:36:12.4000261Z             },
2026-06-16T09:36:12.4000387Z             {
2026-06-16T09:36:12.4000620Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.4000771Z               "line": 312
2026-06-16T09:36:12.4000905Z             },
2026-06-16T09:36:12.4001029Z             {
2026-06-16T09:36:12.4001258Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.4001400Z               "line": 323
2026-06-16T09:36:12.4001530Z             },
2026-06-16T09:36:12.4001649Z             {
2026-06-16T09:36:12.4001883Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.4002029Z               "line": 332
2026-06-16T09:36:12.4002155Z             },
2026-06-16T09:36:12.4002283Z             {
2026-06-16T09:36:12.4002508Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.4002650Z               "line": 342
2026-06-16T09:36:12.4002779Z             },
2026-06-16T09:36:12.4002907Z             {
2026-06-16T09:36:12.4003259Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-16T09:36:12.4003407Z               "line": 358
2026-06-16T09:36:12.4003532Z             },
2026-06-16T09:36:12.4003655Z             {
2026-06-16T09:36:12.4003889Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4004151Z               "line": 708
2026-06-16T09:36:12.4004284Z             },
2026-06-16T09:36:12.4004414Z             {
2026-06-16T09:36:12.4004651Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4004804Z               "line": 744
2026-06-16T09:36:12.4004942Z             },
2026-06-16T09:36:12.4005058Z             {
2026-06-16T09:36:12.4005281Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.4005424Z               "line": 966
2026-06-16T09:36:12.4005561Z             },
2026-06-16T09:36:12.4005690Z             {
2026-06-16T09:36:12.4005925Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-16T09:36:12.4006080Z               "line": 143
2026-06-16T09:36:12.4006207Z             },
2026-06-16T09:36:12.4006341Z             {
2026-06-16T09:36:12.4006569Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-16T09:36:12.4006718Z               "line": 222
2026-06-16T09:36:12.4006855Z             },
2026-06-16T09:36:12.4006981Z             {
2026-06-16T09:36:12.4007213Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-16T09:36:12.4007351Z               "line": 291
2026-06-16T09:36:12.4007476Z             },
2026-06-16T09:36:12.4007596Z             {
2026-06-16T09:36:12.4007823Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-16T09:36:12.4007967Z               "line": 17
2026-06-16T09:36:12.4008100Z             },
2026-06-16T09:36:12.4008231Z             {
2026-06-16T09:36:12.4008442Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-16T09:36:12.4008585Z               "line": 104
2026-06-16T09:36:12.4008712Z             }
2026-06-16T09:36:12.4008841Z           ]
2026-06-16T09:36:12.4009074Z         }
2026-06-16T09:36:12.4009199Z       }
2026-06-16T09:36:12.4009332Z     },
2026-06-16T09:36:12.4009451Z     {
2026-06-16T09:36:12.4009666Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-16T09:36:12.4010028Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-16T09:36:12.4010200Z       "requiredStages": [
2026-06-16T09:36:12.4010328Z         "impl",
2026-06-16T09:36:12.4010459Z         "unit"
2026-06-16T09:36:12.4010586Z       ],
2026-06-16T09:36:12.4010710Z       "stages": {
2026-06-16T09:36:12.4010835Z         "doc": {
2026-06-16T09:36:12.4010990Z           "complete": false,
2026-06-16T09:36:12.4011133Z           "evidence": []
2026-06-16T09:36:12.4011260Z         },
2026-06-16T09:36:12.4011388Z         "impl": {
2026-06-16T09:36:12.4011542Z           "complete": true,
2026-06-16T09:36:12.4011684Z           "evidence": [
2026-06-16T09:36:12.4011818Z             {
2026-06-16T09:36:12.4012042Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.4012195Z               "line": 168
2026-06-16T09:36:12.4012323Z             },
2026-06-16T09:36:12.4012457Z             {
2026-06-16T09:36:12.4012661Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.4012805Z               "line": 18
2026-06-16T09:36:12.4012933Z             },
2026-06-16T09:36:12.4013063Z             {
2026-06-16T09:36:12.4013277Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.4013420Z               "line": 100
2026-06-16T09:36:12.4013553Z             }
2026-06-16T09:36:12.4013693Z           ]
2026-06-16T09:36:12.4013824Z         },
2026-06-16T09:36:12.4013957Z         "int": {
2026-06-16T09:36:12.4014106Z           "complete": false,
2026-06-16T09:36:12.4014243Z           "evidence": []
2026-06-16T09:36:12.4014364Z         },
2026-06-16T09:36:12.4014496Z         "unit": {
2026-06-16T09:36:12.4014655Z           "complete": true,
2026-06-16T09:36:12.4014792Z           "evidence": [
2026-06-16T09:36:12.4015045Z             {
2026-06-16T09:36:12.4015270Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.4015422Z               "line": 853
2026-06-16T09:36:12.4015551Z             },
2026-06-16T09:36:12.4015674Z             {
2026-06-16T09:36:12.4015985Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.4016131Z               "line": 161
2026-06-16T09:36:12.4016255Z             },
2026-06-16T09:36:12.4016376Z             {
2026-06-16T09:36:12.4016587Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.4016729Z               "line": 233
2026-06-16T09:36:12.4016853Z             }
2026-06-16T09:36:12.4016987Z           ]
2026-06-16T09:36:12.4017115Z         }
2026-06-16T09:36:12.4017249Z       }
2026-06-16T09:36:12.4017377Z     },
2026-06-16T09:36:12.4017507Z     {
2026-06-16T09:36:12.4017716Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-16T09:36:12.4018781Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-16T09:36:12.4019016Z       "requiredStages": [
2026-06-16T09:36:12.4019141Z         "impl",
2026-06-16T09:36:12.4019272Z         "unit"
2026-06-16T09:36:12.4019405Z       ],
2026-06-16T09:36:12.4019544Z       "stages": {
2026-06-16T09:36:12.4019682Z         "doc": {
2026-06-16T09:36:12.4019826Z           "complete": true,
2026-06-16T09:36:12.4019973Z           "evidence": [
2026-06-16T09:36:12.4020093Z             {
2026-06-16T09:36:12.4020297Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4020436Z               "line": 220
2026-06-16T09:36:12.4020574Z             }
2026-06-16T09:36:12.4020704Z           ]
2026-06-16T09:36:12.4020827Z         },
2026-06-16T09:36:12.4020965Z         "impl": {
2026-06-16T09:36:12.4021118Z           "complete": true,
2026-06-16T09:36:12.4021260Z           "evidence": [
2026-06-16T09:36:12.4021390Z             {
2026-06-16T09:36:12.4021641Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.4021778Z               "line": 311
2026-06-16T09:36:12.4021910Z             },
2026-06-16T09:36:12.4022035Z             {
2026-06-16T09:36:12.4022268Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.4022416Z               "line": 257
2026-06-16T09:36:12.4022549Z             },
2026-06-16T09:36:12.4022678Z             {
2026-06-16T09:36:12.4022912Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.4023045Z               "line": 405
2026-06-16T09:36:12.4023178Z             },
2026-06-16T09:36:12.4023304Z             {
2026-06-16T09:36:12.4023527Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-16T09:36:12.4023670Z               "line": 77
2026-06-16T09:36:12.4023803Z             }
2026-06-16T09:36:12.4023933Z           ]
2026-06-16T09:36:12.4024060Z         },
2026-06-16T09:36:12.4024186Z         "int": {
2026-06-16T09:36:12.4024337Z           "complete": false,
2026-06-16T09:36:12.4024489Z           "evidence": []
2026-06-16T09:36:12.4024604Z         },
2026-06-16T09:36:12.4024741Z         "unit": {
2026-06-16T09:36:12.4024895Z           "complete": true,
2026-06-16T09:36:12.4025042Z           "evidence": [
2026-06-16T09:36:12.4025167Z             {
2026-06-16T09:36:12.4025394Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.4025539Z               "line": 478
2026-06-16T09:36:12.4025667Z             },
2026-06-16T09:36:12.4025796Z             {
2026-06-16T09:36:12.4026029Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.4026178Z               "line": 516
2026-06-16T09:36:12.4026310Z             },
2026-06-16T09:36:12.4026440Z             {
2026-06-16T09:36:12.4026658Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-16T09:36:12.4026800Z               "line": 166
2026-06-16T09:36:12.4026923Z             }
2026-06-16T09:36:12.4027050Z           ]
2026-06-16T09:36:12.4027175Z         }
2026-06-16T09:36:12.4027418Z       }
2026-06-16T09:36:12.4027548Z     },
2026-06-16T09:36:12.4027666Z     {
2026-06-16T09:36:12.4027895Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-16T09:36:12.4029398Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-16T09:36:12.4029658Z       "requiredStages": [
2026-06-16T09:36:12.4029794Z         "impl",
2026-06-16T09:36:12.4029912Z         "unit"
2026-06-16T09:36:12.4030038Z       ],
2026-06-16T09:36:12.4030180Z       "stages": {
2026-06-16T09:36:12.4030310Z         "doc": {
2026-06-16T09:36:12.4030461Z           "complete": false,
2026-06-16T09:36:12.4030605Z           "evidence": []
2026-06-16T09:36:12.4030724Z         },
2026-06-16T09:36:12.4030862Z         "impl": {
2026-06-16T09:36:12.4031015Z           "complete": true,
2026-06-16T09:36:12.4031163Z           "evidence": [
2026-06-16T09:36:12.4031302Z             {
2026-06-16T09:36:12.4031535Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-16T09:36:12.4031682Z               "line": 22
2026-06-16T09:36:12.4031811Z             },
2026-06-16T09:36:12.4031941Z             {
2026-06-16T09:36:12.4032158Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4032310Z               "line": 487
2026-06-16T09:36:12.4032437Z             },
2026-06-16T09:36:12.4032566Z             {
2026-06-16T09:36:12.4032804Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-16T09:36:12.4032948Z               "line": 17
2026-06-16T09:36:12.4033085Z             },
2026-06-16T09:36:12.4033215Z             {
2026-06-16T09:36:12.4033443Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-16T09:36:12.4033591Z               "line": 147
2026-06-16T09:36:12.4033720Z             },
2026-06-16T09:36:12.4033845Z             {
2026-06-16T09:36:12.4034097Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4034244Z               "line": 226
2026-06-16T09:36:12.4034368Z             },
2026-06-16T09:36:12.4034498Z             {
2026-06-16T09:36:12.4034751Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4034897Z               "line": 251
2026-06-16T09:36:12.4035034Z             },
2026-06-16T09:36:12.4035150Z             {
2026-06-16T09:36:12.4035392Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4035546Z               "line": 277
2026-06-16T09:36:12.4035673Z             },
2026-06-16T09:36:12.4035803Z             {
2026-06-16T09:36:12.4036031Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.4036175Z               "line": 124
2026-06-16T09:36:12.4036293Z             },
2026-06-16T09:36:12.4036428Z             {
2026-06-16T09:36:12.4036656Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.4036804Z               "line": 224
2026-06-16T09:36:12.4036932Z             }
2026-06-16T09:36:12.4037063Z           ]
2026-06-16T09:36:12.4037189Z         },
2026-06-16T09:36:12.4037318Z         "int": {
2026-06-16T09:36:12.4037464Z           "complete": false,
2026-06-16T09:36:12.4037610Z           "evidence": []
2026-06-16T09:36:12.4037745Z         },
2026-06-16T09:36:12.4037882Z         "unit": {
2026-06-16T09:36:12.4038027Z           "complete": true,
2026-06-16T09:36:12.4038173Z           "evidence": [
2026-06-16T09:36:12.4038298Z             {
2026-06-16T09:36:12.4038540Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-16T09:36:12.4038675Z               "line": 63
2026-06-16T09:36:12.4038808Z             },
2026-06-16T09:36:12.4039023Z             {
2026-06-16T09:36:12.4039257Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-16T09:36:12.4039403Z               "line": 73
2026-06-16T09:36:12.4039528Z             },
2026-06-16T09:36:12.4039662Z             {
2026-06-16T09:36:12.4039892Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-16T09:36:12.4040142Z               "line": 85
2026-06-16T09:36:12.4040271Z             },
2026-06-16T09:36:12.4040397Z             {
2026-06-16T09:36:12.4040622Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-16T09:36:12.4040870Z               "line": 346
2026-06-16T09:36:12.4040994Z             },
2026-06-16T09:36:12.4041121Z             {
2026-06-16T09:36:12.4041351Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-16T09:36:12.4041494Z               "line": 281
2026-06-16T09:36:12.4041627Z             },
2026-06-16T09:36:12.4041751Z             {
2026-06-16T09:36:12.4041985Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-16T09:36:12.4042134Z               "line": 322
2026-06-16T09:36:12.4042261Z             },
2026-06-16T09:36:12.4042381Z             {
2026-06-16T09:36:12.4042609Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-16T09:36:12.4042747Z               "line": 360
2026-06-16T09:36:12.4042879Z             },
2026-06-16T09:36:12.4043006Z             {
2026-06-16T09:36:12.4043259Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4043407Z               "line": 688
2026-06-16T09:36:12.4043527Z             },
2026-06-16T09:36:12.4043660Z             {
2026-06-16T09:36:12.4043889Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.4044032Z               "line": 397
2026-06-16T09:36:12.4044165Z             },
2026-06-16T09:36:12.4044289Z             {
2026-06-16T09:36:12.4044523Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.4044667Z               "line": 440
2026-06-16T09:36:12.4044795Z             }
2026-06-16T09:36:12.4044919Z           ]
2026-06-16T09:36:12.4045049Z         }
2026-06-16T09:36:12.4045176Z       }
2026-06-16T09:36:12.4045306Z     },
2026-06-16T09:36:12.4045429Z     {
2026-06-16T09:36:12.4045599Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-16T09:36:12.4046077Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-16T09:36:12.4046243Z       "requiredStages": [
2026-06-16T09:36:12.4046373Z         "impl",
2026-06-16T09:36:12.4046496Z         "unit"
2026-06-16T09:36:12.4046631Z       ],
2026-06-16T09:36:12.4046778Z       "stages": {
2026-06-16T09:36:12.4046911Z         "doc": {
2026-06-16T09:36:12.4047073Z           "complete": false,
2026-06-16T09:36:12.4047217Z           "evidence": []
2026-06-16T09:36:12.4047346Z         },
2026-06-16T09:36:12.4047469Z         "impl": {
2026-06-16T09:36:12.4047618Z           "complete": true,
2026-06-16T09:36:12.4047768Z           "evidence": [
2026-06-16T09:36:12.4047897Z             {
2026-06-16T09:36:12.4048114Z               "path": "crates/spt-term/src/reader.rs",
2026-06-16T09:36:12.4048252Z               "line": 169
2026-06-16T09:36:12.4048381Z             }
2026-06-16T09:36:12.4048509Z           ]
2026-06-16T09:36:12.4048639Z         },
2026-06-16T09:36:12.4048771Z         "int": {
2026-06-16T09:36:12.4048916Z           "complete": true,
2026-06-16T09:36:12.4049120Z           "evidence": [
2026-06-16T09:36:12.4049245Z             {
2026-06-16T09:36:12.4049459Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-16T09:36:12.4049602Z               "line": 44
2026-06-16T09:36:12.4049740Z             },
2026-06-16T09:36:12.4049875Z             {
2026-06-16T09:36:12.4050074Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-16T09:36:12.4050213Z               "line": 66
2026-06-16T09:36:12.4050332Z             }
2026-06-16T09:36:12.4050457Z           ]
2026-06-16T09:36:12.4050579Z         },
2026-06-16T09:36:12.4050716Z         "unit": {
2026-06-16T09:36:12.4050864Z           "complete": true,
2026-06-16T09:36:12.4050995Z           "evidence": [
2026-06-16T09:36:12.4051129Z             {
2026-06-16T09:36:12.4051338Z               "path": "crates/spt-term/src/reader.rs",
2026-06-16T09:36:12.4051487Z               "line": 186
2026-06-16T09:36:12.4051615Z             },
2026-06-16T09:36:12.4051750Z             {
2026-06-16T09:36:12.4052079Z               "path": "crates/spt-term/src/reader.rs",
2026-06-16T09:36:12.4052226Z               "line": 238
2026-06-16T09:36:12.4052360Z             },
2026-06-16T09:36:12.4052488Z             {
2026-06-16T09:36:12.4052699Z               "path": "crates/spt-term/src/reader.rs",
2026-06-16T09:36:12.4052965Z               "line": 266
2026-06-16T09:36:12.4053099Z             }
2026-06-16T09:36:12.4053231Z           ]
2026-06-16T09:36:12.4053355Z         }
2026-06-16T09:36:12.4053477Z       }
2026-06-16T09:36:12.4053590Z     },
2026-06-16T09:36:12.4053720Z     {
2026-06-16T09:36:12.4053934Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-16T09:36:12.4054975Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-16T09:36:12.4055131Z       "requiredStages": [
2026-06-16T09:36:12.4055261Z         "impl",
2026-06-16T09:36:12.4055397Z         "unit",
2026-06-16T09:36:12.4055537Z         "int"
2026-06-16T09:36:12.4055661Z       ],
2026-06-16T09:36:12.4055789Z       "stages": {
2026-06-16T09:36:12.4055914Z         "doc": {
2026-06-16T09:36:12.4056074Z           "complete": false,
2026-06-16T09:36:12.4056227Z           "evidence": []
2026-06-16T09:36:12.4056356Z         },
2026-06-16T09:36:12.4056489Z         "impl": {
2026-06-16T09:36:12.4056647Z           "complete": true,
2026-06-16T09:36:12.4056784Z           "evidence": [
2026-06-16T09:36:12.4056914Z             {
2026-06-16T09:36:12.4057166Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4057314Z               "line": 152
2026-06-16T09:36:12.4057447Z             },
2026-06-16T09:36:12.4057572Z             {
2026-06-16T09:36:12.4057816Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4057962Z               "line": 176
2026-06-16T09:36:12.4058096Z             },
2026-06-16T09:36:12.4058220Z             {
2026-06-16T09:36:12.4058433Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.4058589Z               "line": 79
2026-06-16T09:36:12.4058712Z             },
2026-06-16T09:36:12.4058837Z             {
2026-06-16T09:36:12.4059099Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.4059246Z               "line": 52
2026-06-16T09:36:12.4059380Z             },
2026-06-16T09:36:12.4059509Z             {
2026-06-16T09:36:12.4059709Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4059857Z               "line": 205
2026-06-16T09:36:12.4059990Z             },
2026-06-16T09:36:12.4060124Z             {
2026-06-16T09:36:12.4060334Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-16T09:36:12.4060467Z               "line": 27
2026-06-16T09:36:12.4060596Z             },
2026-06-16T09:36:12.4060721Z             {
2026-06-16T09:36:12.4060944Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-16T09:36:12.4061088Z               "line": 79
2026-06-16T09:36:12.4061229Z             },
2026-06-16T09:36:12.4061348Z             {
2026-06-16T09:36:12.4061565Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-16T09:36:12.4061714Z               "line": 102
2026-06-16T09:36:12.4061837Z             },
2026-06-16T09:36:12.4061976Z             {
2026-06-16T09:36:12.4062203Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4062348Z               "line": 116
2026-06-16T09:36:12.4062471Z             }
2026-06-16T09:36:12.4062600Z           ]
2026-06-16T09:36:12.4062724Z         },
2026-06-16T09:36:12.4062847Z         "int": {
2026-06-16T09:36:12.4062996Z           "complete": true,
2026-06-16T09:36:12.4063143Z           "evidence": [
2026-06-16T09:36:12.4063264Z             {
2026-06-16T09:36:12.4063511Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-16T09:36:12.4063660Z               "line": 43
2026-06-16T09:36:12.4063781Z             }
2026-06-16T09:36:12.4063905Z           ]
2026-06-16T09:36:12.4064032Z         },
2026-06-16T09:36:12.4064285Z         "unit": {
2026-06-16T09:36:12.4064441Z           "complete": true,
2026-06-16T09:36:12.4064581Z           "evidence": [
2026-06-16T09:36:12.4064709Z             {
2026-06-16T09:36:12.4064943Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4065186Z               "line": 628
2026-06-16T09:36:12.4065309Z             },
2026-06-16T09:36:12.4065434Z             {
2026-06-16T09:36:12.4065649Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4065792Z               "line": 369
2026-06-16T09:36:12.4065925Z             },
2026-06-16T09:36:12.4066049Z             {
2026-06-16T09:36:12.4066277Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-16T09:36:12.4066422Z               "line": 124
2026-06-16T09:36:12.4066554Z             },
2026-06-16T09:36:12.4066686Z             {
2026-06-16T09:36:12.4066906Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-16T09:36:12.4067058Z               "line": 143
2026-06-16T09:36:12.4067192Z             },
2026-06-16T09:36:12.4067325Z             {
2026-06-16T09:36:12.4067550Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-16T09:36:12.4067693Z               "line": 160
2026-06-16T09:36:12.4067836Z             },
2026-06-16T09:36:12.4067955Z             {
2026-06-16T09:36:12.4068184Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-16T09:36:12.4068322Z               "line": 187
2026-06-16T09:36:12.4068451Z             },
2026-06-16T09:36:12.4068579Z             {
2026-06-16T09:36:12.4068795Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-16T09:36:12.4069017Z               "line": 206
2026-06-16T09:36:12.4069140Z             },
2026-06-16T09:36:12.4069267Z             {
2026-06-16T09:36:12.4069497Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4069659Z               "line": 229
2026-06-16T09:36:12.4069783Z             }
2026-06-16T09:36:12.4069915Z           ]
2026-06-16T09:36:12.4070046Z         }
2026-06-16T09:36:12.4070173Z       }
2026-06-16T09:36:12.4070299Z     },
2026-06-16T09:36:12.4070422Z     {
2026-06-16T09:36:12.4070656Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-16T09:36:12.4072321Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-16T09:36:12.4075579Z       "requiredStages": [
2026-06-16T09:36:12.4075761Z         "impl",
2026-06-16T09:36:12.4075889Z         "unit"
2026-06-16T09:36:12.4076022Z       ],
2026-06-16T09:36:12.4076161Z       "stages": {
2026-06-16T09:36:12.4076299Z         "doc": {
2026-06-16T09:36:12.4076462Z           "complete": false,
2026-06-16T09:36:12.4076609Z           "evidence": []
2026-06-16T09:36:12.4076734Z         },
2026-06-16T09:36:12.4076861Z         "impl": {
2026-06-16T09:36:12.4077015Z           "complete": true,
2026-06-16T09:36:12.4077161Z           "evidence": [
2026-06-16T09:36:12.4077294Z             {
2026-06-16T09:36:12.4077537Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.4077676Z               "line": 621
2026-06-16T09:36:12.4077810Z             },
2026-06-16T09:36:12.4077938Z             {
2026-06-16T09:36:12.4078166Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.4078311Z               "line": 834
2026-06-16T09:36:12.4078444Z             }
2026-06-16T09:36:12.4078567Z           ]
2026-06-16T09:36:12.4078697Z         },
2026-06-16T09:36:12.4078825Z         "int": {
2026-06-16T09:36:12.4079072Z           "complete": false,
2026-06-16T09:36:12.4079221Z           "evidence": []
2026-06-16T09:36:12.4079345Z         },
2026-06-16T09:36:12.4079482Z         "unit": {
2026-06-16T09:36:12.4079625Z           "complete": true,
2026-06-16T09:36:12.4079771Z           "evidence": [
2026-06-16T09:36:12.4079894Z             {
2026-06-16T09:36:12.4080137Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-16T09:36:12.4080443Z               "line": 161
2026-06-16T09:36:12.4080573Z             }
2026-06-16T09:36:12.4080705Z           ]
2026-06-16T09:36:12.4080825Z         }
2026-06-16T09:36:12.4081053Z       }
2026-06-16T09:36:12.4081178Z     },
2026-06-16T09:36:12.4081301Z     {
2026-06-16T09:36:12.4081498Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-16T09:36:12.4081898Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-16T09:36:12.4082064Z       "requiredStages": [
2026-06-16T09:36:12.4082199Z         "impl",
2026-06-16T09:36:12.4082326Z         "unit"
2026-06-16T09:36:12.4082459Z       ],
2026-06-16T09:36:12.4082586Z       "stages": {
2026-06-16T09:36:12.4082718Z         "doc": {
2026-06-16T09:36:12.4082872Z           "complete": false,
2026-06-16T09:36:12.4083018Z           "evidence": []
2026-06-16T09:36:12.4083153Z         },
2026-06-16T09:36:12.4083276Z         "impl": {
2026-06-16T09:36:12.4083440Z           "complete": true,
2026-06-16T09:36:12.4083582Z           "evidence": [
2026-06-16T09:36:12.4083706Z             {
2026-06-16T09:36:12.4083930Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4084074Z               "line": 40
2026-06-16T09:36:12.4084215Z             },
2026-06-16T09:36:12.4084340Z             {
2026-06-16T09:36:12.4084559Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4084704Z               "line": 103
2026-06-16T09:36:12.4084826Z             },
2026-06-16T09:36:12.4084954Z             {
2026-06-16T09:36:12.4085167Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4085319Z               "line": 218
2026-06-16T09:36:12.4085444Z             },
2026-06-16T09:36:12.4085571Z             {
2026-06-16T09:36:12.4085777Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4085924Z               "line": 323
2026-06-16T09:36:12.4086059Z             }
2026-06-16T09:36:12.4086186Z           ]
2026-06-16T09:36:12.4086326Z         },
2026-06-16T09:36:12.4086444Z         "int": {
2026-06-16T09:36:12.4086607Z           "complete": false,
2026-06-16T09:36:12.4086744Z           "evidence": []
2026-06-16T09:36:12.4086883Z         },
2026-06-16T09:36:12.4087022Z         "unit": {
2026-06-16T09:36:12.4087174Z           "complete": true,
2026-06-16T09:36:12.4087313Z           "evidence": [
2026-06-16T09:36:12.4087441Z             {
2026-06-16T09:36:12.4087652Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4087793Z               "line": 361
2026-06-16T09:36:12.4087921Z             },
2026-06-16T09:36:12.4088051Z             {
2026-06-16T09:36:12.4088261Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4088403Z               "line": 433
2026-06-16T09:36:12.4088528Z             },
2026-06-16T09:36:12.4088656Z             {
2026-06-16T09:36:12.4088866Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4089084Z               "line": 496
2026-06-16T09:36:12.4089220Z             },
2026-06-16T09:36:12.4089347Z             {
2026-06-16T09:36:12.4089558Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4089695Z               "line": 517
2026-06-16T09:36:12.4089825Z             }
2026-06-16T09:36:12.4089952Z           ]
2026-06-16T09:36:12.4090075Z         }
2026-06-16T09:36:12.4090204Z       }
2026-06-16T09:36:12.4090326Z     },
2026-06-16T09:36:12.4090454Z     {
2026-06-16T09:36:12.4090669Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-16T09:36:12.4090913Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-16T09:36:12.4091060Z       "requiredStages": [
2026-06-16T09:36:12.4091194Z         "impl",
2026-06-16T09:36:12.4091327Z         "unit"
2026-06-16T09:36:12.4091452Z       ],
2026-06-16T09:36:12.4091580Z       "stages": {
2026-06-16T09:36:12.4091704Z         "doc": {
2026-06-16T09:36:12.4091861Z           "complete": false,
2026-06-16T09:36:12.4091994Z           "evidence": []
2026-06-16T09:36:12.4092243Z         },
2026-06-16T09:36:12.4092377Z         "impl": {
2026-06-16T09:36:12.4092524Z           "complete": true,
2026-06-16T09:36:12.4092673Z           "evidence": [
2026-06-16T09:36:12.4092801Z             {
2026-06-16T09:36:12.4093113Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4093259Z               "line": 116
2026-06-16T09:36:12.4093394Z             },
2026-06-16T09:36:12.4093522Z             {
2026-06-16T09:36:12.4093733Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4093875Z               "line": 211
2026-06-16T09:36:12.4093991Z             }
2026-06-16T09:36:12.4094114Z           ]
2026-06-16T09:36:12.4094232Z         },
2026-06-16T09:36:12.4094362Z         "int": {
2026-06-16T09:36:12.4094523Z           "complete": false,
2026-06-16T09:36:12.4094658Z           "evidence": []
2026-06-16T09:36:12.4094781Z         },
2026-06-16T09:36:12.4094915Z         "unit": {
2026-06-16T09:36:12.4095062Z           "complete": true,
2026-06-16T09:36:12.4095206Z           "evidence": [
2026-06-16T09:36:12.4095330Z             {
2026-06-16T09:36:12.4095591Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4095731Z               "line": 388
2026-06-16T09:36:12.4095869Z             },
2026-06-16T09:36:12.4095999Z             {
2026-06-16T09:36:12.4096213Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4096357Z               "line": 469
2026-06-16T09:36:12.4096484Z             }
2026-06-16T09:36:12.4096619Z           ]
2026-06-16T09:36:12.4096737Z         }
2026-06-16T09:36:12.4096867Z       }
2026-06-16T09:36:12.4096985Z     },
2026-06-16T09:36:12.4097104Z     {
2026-06-16T09:36:12.4097324Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-16T09:36:12.4100127Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-16T09:36:12.4100298Z       "requiredStages": [
2026-06-16T09:36:12.4100428Z         "impl",
2026-06-16T09:36:12.4100574Z         "unit"
2026-06-16T09:36:12.4100702Z       ],
2026-06-16T09:36:12.4100839Z       "stages": {
2026-06-16T09:36:12.4100971Z         "doc": {
2026-06-16T09:36:12.4101116Z           "complete": true,
2026-06-16T09:36:12.4101253Z           "evidence": [
2026-06-16T09:36:12.4101368Z             {
2026-06-16T09:36:12.4101558Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4101707Z               "line": 206
2026-06-16T09:36:12.4101835Z             }
2026-06-16T09:36:12.4101964Z           ]
2026-06-16T09:36:12.4102088Z         },
2026-06-16T09:36:12.4102216Z         "impl": {
2026-06-16T09:36:12.4102360Z           "complete": true,
2026-06-16T09:36:12.4102502Z           "evidence": [
2026-06-16T09:36:12.4102623Z             {
2026-06-16T09:36:12.4102865Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.4103013Z               "line": 630
2026-06-16T09:36:12.4103146Z             },
2026-06-16T09:36:12.4103276Z             {
2026-06-16T09:36:12.4103498Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.4103646Z               "line": 722
2026-06-16T09:36:12.4103777Z             },
2026-06-16T09:36:12.4103901Z             {
2026-06-16T09:36:12.4104148Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.4104288Z               "line": 183
2026-06-16T09:36:12.4104416Z             }
2026-06-16T09:36:12.4104541Z           ]
2026-06-16T09:36:12.4104665Z         },
2026-06-16T09:36:12.4104787Z         "int": {
2026-06-16T09:36:12.4104941Z           "complete": false,
2026-06-16T09:36:12.4105088Z           "evidence": []
2026-06-16T09:36:12.4105209Z         },
2026-06-16T09:36:12.4105346Z         "unit": {
2026-06-16T09:36:12.4105495Z           "complete": true,
2026-06-16T09:36:12.4105776Z           "evidence": [
2026-06-16T09:36:12.4105904Z             {
2026-06-16T09:36:12.4106136Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.4106277Z               "line": 771
2026-06-16T09:36:12.4106501Z             },
2026-06-16T09:36:12.4106630Z             {
2026-06-16T09:36:12.4106878Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-16T09:36:12.4107015Z               "line": 44
2026-06-16T09:36:12.4107141Z             },
2026-06-16T09:36:12.4107264Z             {
2026-06-16T09:36:12.4107512Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-16T09:36:12.4107641Z               "line": 52
2026-06-16T09:36:12.4107770Z             },
2026-06-16T09:36:12.4107898Z             {
2026-06-16T09:36:12.4108114Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-16T09:36:12.4108247Z               "line": 57
2026-06-16T09:36:12.4108386Z             },
2026-06-16T09:36:12.4108513Z             {
2026-06-16T09:36:12.4108772Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-16T09:36:12.4108917Z               "line": 54
2026-06-16T09:36:12.4109119Z             }
2026-06-16T09:36:12.4109246Z           ]
2026-06-16T09:36:12.4109366Z         }
2026-06-16T09:36:12.4109509Z       }
2026-06-16T09:36:12.4109633Z     },
2026-06-16T09:36:12.4109757Z     {
2026-06-16T09:36:12.4109991Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-16T09:36:12.4110468Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-16T09:36:12.4110630Z       "requiredStages": [
2026-06-16T09:36:12.4110762Z         "impl",
2026-06-16T09:36:12.4110887Z         "unit"
2026-06-16T09:36:12.4111016Z       ],
2026-06-16T09:36:12.4111139Z       "stages": {
2026-06-16T09:36:12.4111263Z         "doc": {
2026-06-16T09:36:12.4111409Z           "complete": false,
2026-06-16T09:36:12.4111556Z           "evidence": []
2026-06-16T09:36:12.4111686Z         },
2026-06-16T09:36:12.4111818Z         "impl": {
2026-06-16T09:36:12.4111967Z           "complete": true,
2026-06-16T09:36:12.4112104Z           "evidence": [
2026-06-16T09:36:12.4112234Z             {
2026-06-16T09:36:12.4112447Z               "path": "crates/spt-live/src/context.rs",
2026-06-16T09:36:12.4112592Z               "line": 26
2026-06-16T09:36:12.4112715Z             },
2026-06-16T09:36:12.4112834Z             {
2026-06-16T09:36:12.4113057Z               "path": "crates/spt-live/src/context.rs",
2026-06-16T09:36:12.4113197Z               "line": 135
2026-06-16T09:36:12.4113319Z             },
2026-06-16T09:36:12.4113449Z             {
2026-06-16T09:36:12.4113692Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-16T09:36:12.4113822Z               "line": 26
2026-06-16T09:36:12.4113958Z             },
2026-06-16T09:36:12.4114086Z             {
2026-06-16T09:36:12.4114323Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-16T09:36:12.4114471Z               "line": 237
2026-06-16T09:36:12.4114605Z             }
2026-06-16T09:36:12.4114728Z           ]
2026-06-16T09:36:12.4114857Z         },
2026-06-16T09:36:12.4114990Z         "int": {
2026-06-16T09:36:12.4115139Z           "complete": false,
2026-06-16T09:36:12.4115285Z           "evidence": []
2026-06-16T09:36:12.4115420Z         },
2026-06-16T09:36:12.4115553Z         "unit": {
2026-06-16T09:36:12.4115706Z           "complete": true,
2026-06-16T09:36:12.4115848Z           "evidence": [
2026-06-16T09:36:12.4115973Z             {
2026-06-16T09:36:12.4116191Z               "path": "crates/spt-live/src/context.rs",
2026-06-16T09:36:12.4116321Z               "line": 161
2026-06-16T09:36:12.4116450Z             },
2026-06-16T09:36:12.4116578Z             {
2026-06-16T09:36:12.4116791Z               "path": "crates/spt-live/src/context.rs",
2026-06-16T09:36:12.4116937Z               "line": 170
2026-06-16T09:36:12.4117066Z             },
2026-06-16T09:36:12.4117195Z             {
2026-06-16T09:36:12.4117400Z               "path": "crates/spt-live/src/context.rs",
2026-06-16T09:36:12.4117663Z               "line": 179
2026-06-16T09:36:12.4117787Z             },
2026-06-16T09:36:12.4117909Z             {
2026-06-16T09:36:12.4118129Z               "path": "crates/spt-live/src/context.rs",
2026-06-16T09:36:12.4118363Z               "line": 190
2026-06-16T09:36:12.4118492Z             },
2026-06-16T09:36:12.4118617Z             {
2026-06-16T09:36:12.4118830Z               "path": "crates/spt-live/src/context.rs",
2026-06-16T09:36:12.4119040Z               "line": 199
2026-06-16T09:36:12.4119169Z             },
2026-06-16T09:36:12.4119299Z             {
2026-06-16T09:36:12.4119511Z               "path": "crates/spt-live/src/context.rs",
2026-06-16T09:36:12.4119655Z               "line": 216
2026-06-16T09:36:12.4119783Z             },
2026-06-16T09:36:12.4119907Z             {
2026-06-16T09:36:12.4120112Z               "path": "crates/spt-live/src/context.rs",
2026-06-16T09:36:12.4120246Z               "line": 242
2026-06-16T09:36:12.4120365Z             },
2026-06-16T09:36:12.4120494Z             {
2026-06-16T09:36:12.4120704Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.4120837Z               "line": 295
2026-06-16T09:36:12.4120966Z             },
2026-06-16T09:36:12.4121094Z             {
2026-06-16T09:36:12.4121304Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-16T09:36:12.4121443Z               "line": 244
2026-06-16T09:36:12.4121567Z             },
2026-06-16T09:36:12.4121699Z             {
2026-06-16T09:36:12.4121936Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-16T09:36:12.4122078Z               "line": 265
2026-06-16T09:36:12.4122208Z             },
2026-06-16T09:36:12.4122340Z             {
2026-06-16T09:36:12.4122579Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-16T09:36:12.4122716Z               "line": 293
2026-06-16T09:36:12.4122842Z             },
2026-06-16T09:36:12.4122960Z             {
2026-06-16T09:36:12.4123199Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-16T09:36:12.4123346Z               "line": 317
2026-06-16T09:36:12.4123476Z             },
2026-06-16T09:36:12.4123604Z             {
2026-06-16T09:36:12.4123833Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-16T09:36:12.4123985Z               "line": 327
2026-06-16T09:36:12.4124110Z             },
2026-06-16T09:36:12.4124238Z             {
2026-06-16T09:36:12.4124468Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.4124609Z               "line": 540
2026-06-16T09:36:12.4124733Z             }
2026-06-16T09:36:12.4124859Z           ]
2026-06-16T09:36:12.4124983Z         }
2026-06-16T09:36:12.4125112Z       }
2026-06-16T09:36:12.4125235Z     },
2026-06-16T09:36:12.4125361Z     {
2026-06-16T09:36:12.4125584Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-16T09:36:12.4125879Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-16T09:36:12.4126028Z       "requiredStages": [
2026-06-16T09:36:12.4126161Z         "impl",
2026-06-16T09:36:12.4126286Z         "unit"
2026-06-16T09:36:12.4126418Z       ],
2026-06-16T09:36:12.4126547Z       "stages": {
2026-06-16T09:36:12.4126682Z         "doc": {
2026-06-16T09:36:12.4126824Z           "complete": false,
2026-06-16T09:36:12.4126973Z           "evidence": []
2026-06-16T09:36:12.4127104Z         },
2026-06-16T09:36:12.4127238Z         "impl": {
2026-06-16T09:36:12.4127388Z           "complete": true,
2026-06-16T09:36:12.4127520Z           "evidence": [
2026-06-16T09:36:12.4127655Z             {
2026-06-16T09:36:12.4127860Z               "path": "crates/spt-live/src/echo.rs",
2026-06-16T09:36:12.4128003Z               "line": 25
2026-06-16T09:36:12.4128141Z             },
2026-06-16T09:36:12.4128266Z             {
2026-06-16T09:36:12.4128474Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.4128618Z               "line": 26
2026-06-16T09:36:12.4128741Z             },
2026-06-16T09:36:12.4128877Z             {
2026-06-16T09:36:12.4129262Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.4129415Z               "line": 159
2026-06-16T09:36:12.4129544Z             }
2026-06-16T09:36:12.4129676Z           ]
2026-06-16T09:36:12.4129792Z         },
2026-06-16T09:36:12.4130024Z         "int": {
2026-06-16T09:36:12.4130177Z           "complete": false,
2026-06-16T09:36:12.4130319Z           "evidence": []
2026-06-16T09:36:12.4130443Z         },
2026-06-16T09:36:12.4130568Z         "unit": {
2026-06-16T09:36:12.4130729Z           "complete": true,
2026-06-16T09:36:12.4130873Z           "evidence": [
2026-06-16T09:36:12.4131006Z             {
2026-06-16T09:36:12.4131211Z               "path": "crates/spt-live/src/echo.rs",
2026-06-16T09:36:12.4131353Z               "line": 188
2026-06-16T09:36:12.4131483Z             },
2026-06-16T09:36:12.4131602Z             {
2026-06-16T09:36:12.4131798Z               "path": "crates/spt-live/src/echo.rs",
2026-06-16T09:36:12.4131945Z               "line": 240
2026-06-16T09:36:12.4132076Z             },
2026-06-16T09:36:12.4132202Z             {
2026-06-16T09:36:12.4132402Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.4132548Z               "line": 186
2026-06-16T09:36:12.4132676Z             }
2026-06-16T09:36:12.4132806Z           ]
2026-06-16T09:36:12.4132928Z         }
2026-06-16T09:36:12.4133048Z       }
2026-06-16T09:36:12.4133177Z     },
2026-06-16T09:36:12.4133296Z     {
2026-06-16T09:36:12.4133482Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-16T09:36:12.4133830Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-16T09:36:12.4133989Z       "requiredStages": [
2026-06-16T09:36:12.4134126Z         "impl",
2026-06-16T09:36:12.4134250Z         "unit"
2026-06-16T09:36:12.4134384Z       ],
2026-06-16T09:36:12.4134507Z       "stages": {
2026-06-16T09:36:12.4134632Z         "doc": {
2026-06-16T09:36:12.4134788Z           "complete": false,
2026-06-16T09:36:12.4134938Z           "evidence": []
2026-06-16T09:36:12.4135065Z         },
2026-06-16T09:36:12.4135250Z         "impl": {
2026-06-16T09:36:12.4135405Z           "complete": true,
2026-06-16T09:36:12.4135543Z           "evidence": [
2026-06-16T09:36:12.4135668Z             {
2026-06-16T09:36:12.4135882Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4136035Z               "line": 48
2026-06-16T09:36:12.4136168Z             },
2026-06-16T09:36:12.4136293Z             {
2026-06-16T09:36:12.4136516Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4136654Z               "line": 55
2026-06-16T09:36:12.4136788Z             },
2026-06-16T09:36:12.4136908Z             {
2026-06-16T09:36:12.4137131Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4137275Z               "line": 74
2026-06-16T09:36:12.4137403Z             },
2026-06-16T09:36:12.4137533Z             {
2026-06-16T09:36:12.4137745Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4137893Z               "line": 91
2026-06-16T09:36:12.4138024Z             }
2026-06-16T09:36:12.4138153Z           ]
2026-06-16T09:36:12.4138282Z         },
2026-06-16T09:36:12.4138405Z         "int": {
2026-06-16T09:36:12.4138563Z           "complete": false,
2026-06-16T09:36:12.4138706Z           "evidence": []
2026-06-16T09:36:12.4138831Z         },
2026-06-16T09:36:12.4139088Z         "unit": {
2026-06-16T09:36:12.4139264Z           "complete": true,
2026-06-16T09:36:12.4139412Z           "evidence": [
2026-06-16T09:36:12.4139540Z             {
2026-06-16T09:36:12.4139756Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4139903Z               "line": 149
2026-06-16T09:36:12.4140033Z             },
2026-06-16T09:36:12.4140156Z             {
2026-06-16T09:36:12.4140381Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4140522Z               "line": 166
2026-06-16T09:36:12.4140645Z             },
2026-06-16T09:36:12.4140770Z             {
2026-06-16T09:36:12.4140989Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4141260Z               "line": 176
2026-06-16T09:36:12.4141390Z             },
2026-06-16T09:36:12.4141518Z             {
2026-06-16T09:36:12.4141733Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4141972Z               "line": 194
2026-06-16T09:36:12.4142105Z             },
2026-06-16T09:36:12.4142224Z             {
2026-06-16T09:36:12.4142457Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4142601Z               "line": 207
2026-06-16T09:36:12.4142734Z             }
2026-06-16T09:36:12.4142862Z           ]
2026-06-16T09:36:12.4142976Z         }
2026-06-16T09:36:12.4143103Z       }
2026-06-16T09:36:12.4143227Z     },
2026-06-16T09:36:12.4143352Z     {
2026-06-16T09:36:12.4143546Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-16T09:36:12.4143957Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-16T09:36:12.4144114Z       "requiredStages": [
2026-06-16T09:36:12.4144243Z         "impl",
2026-06-16T09:36:12.4144376Z         "unit"
2026-06-16T09:36:12.4144500Z       ],
2026-06-16T09:36:12.4144638Z       "stages": {
2026-06-16T09:36:12.4144762Z         "doc": {
2026-06-16T09:36:12.4144916Z           "complete": false,
2026-06-16T09:36:12.4145067Z           "evidence": []
2026-06-16T09:36:12.4145193Z         },
2026-06-16T09:36:12.4145325Z         "impl": {
2026-06-16T09:36:12.4145473Z           "complete": true,
2026-06-16T09:36:12.4145620Z           "evidence": [
2026-06-16T09:36:12.4145738Z             {
2026-06-16T09:36:12.4145985Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4146132Z               "line": 416
2026-06-16T09:36:12.4146262Z             },
2026-06-16T09:36:12.4146394Z             {
2026-06-16T09:36:12.4146600Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-16T09:36:12.4146747Z               "line": 26
2026-06-16T09:36:12.4146872Z             }
2026-06-16T09:36:12.4146995Z           ]
2026-06-16T09:36:12.4147129Z         },
2026-06-16T09:36:12.4147253Z         "int": {
2026-06-16T09:36:12.4147421Z           "complete": false,
2026-06-16T09:36:12.4147562Z           "evidence": []
2026-06-16T09:36:12.4147692Z         },
2026-06-16T09:36:12.4147816Z         "unit": {
2026-06-16T09:36:12.4147968Z           "complete": true,
2026-06-16T09:36:12.4148121Z           "evidence": [
2026-06-16T09:36:12.4148243Z             {
2026-06-16T09:36:12.4148458Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-16T09:36:12.4148598Z               "line": 150
2026-06-16T09:36:12.4148727Z             },
2026-06-16T09:36:12.4148852Z             {
2026-06-16T09:36:12.4149128Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-16T09:36:12.4149285Z               "line": 208
2026-06-16T09:36:12.4149419Z             }
2026-06-16T09:36:12.4149552Z           ]
2026-06-16T09:36:12.4149677Z         }
2026-06-16T09:36:12.4149805Z       }
2026-06-16T09:36:12.4149929Z     },
2026-06-16T09:36:12.4150068Z     {
2026-06-16T09:36:12.4150288Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-16T09:36:12.4153488Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-16T09:36:12.4153673Z       "requiredStages": [
2026-06-16T09:36:12.4153792Z         "doc",
2026-06-16T09:36:12.4153921Z         "impl",
2026-06-16T09:36:12.4154053Z         "unit"
2026-06-16T09:36:12.4154178Z       ],
2026-06-16T09:36:12.4154321Z       "stages": {
2026-06-16T09:36:12.4154445Z         "doc": {
2026-06-16T09:36:12.4154598Z           "complete": true,
2026-06-16T09:36:12.4154731Z           "evidence": [
2026-06-16T09:36:12.4154860Z             {
2026-06-16T09:36:12.4155203Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4155350Z               "line": 214
2026-06-16T09:36:12.4155490Z             }
2026-06-16T09:36:12.4155609Z           ]
2026-06-16T09:36:12.4155743Z         },
2026-06-16T09:36:12.4155985Z         "impl": {
2026-06-16T09:36:12.4156152Z           "complete": true,
2026-06-16T09:36:12.4156298Z           "evidence": [
2026-06-16T09:36:12.4156427Z             {
2026-06-16T09:36:12.4156659Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.4156802Z               "line": 56
2026-06-16T09:36:12.4156930Z             },
2026-06-16T09:36:12.4157065Z             {
2026-06-16T09:36:12.4157288Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.4157441Z               "line": 548
2026-06-16T09:36:12.4157564Z             },
2026-06-16T09:36:12.4157699Z             {
2026-06-16T09:36:12.4157937Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4158080Z               "line": 36
2026-06-16T09:36:12.4158208Z             },
2026-06-16T09:36:12.4158333Z             {
2026-06-16T09:36:12.4158572Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4158715Z               "line": 59
2026-06-16T09:36:12.4158860Z             },
2026-06-16T09:36:12.4159050Z             {
2026-06-16T09:36:12.4159283Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4159421Z               "line": 83
2026-06-16T09:36:12.4159549Z             },
2026-06-16T09:36:12.4159688Z             {
2026-06-16T09:36:12.4159913Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4160061Z               "line": 140
2026-06-16T09:36:12.4160189Z             },
2026-06-16T09:36:12.4160322Z             {
2026-06-16T09:36:12.4160552Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4160695Z               "line": 159
2026-06-16T09:36:12.4160828Z             },
2026-06-16T09:36:12.4160961Z             {
2026-06-16T09:36:12.4161196Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4161342Z               "line": 384
2026-06-16T09:36:12.4161468Z             },
2026-06-16T09:36:12.4161596Z             {
2026-06-16T09:36:12.4161828Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4161981Z               "line": 526
2026-06-16T09:36:12.4162094Z             },
2026-06-16T09:36:12.4162224Z             {
2026-06-16T09:36:12.4162463Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4162606Z               "line": 572
2026-06-16T09:36:12.4162739Z             },
2026-06-16T09:36:12.4162868Z             {
2026-06-16T09:36:12.4163068Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4163210Z               "line": 300
2026-06-16T09:36:12.4163330Z             },
2026-06-16T09:36:12.4163450Z             {
2026-06-16T09:36:12.4163654Z               "path": "crates/spt/src/main.rs",
2026-06-16T09:36:12.4163803Z               "line": 41
2026-06-16T09:36:12.4163935Z             }
2026-06-16T09:36:12.4164063Z           ]
2026-06-16T09:36:12.4164190Z         },
2026-06-16T09:36:12.4164327Z         "int": {
2026-06-16T09:36:12.4164477Z           "complete": false,
2026-06-16T09:36:12.4164632Z           "evidence": []
2026-06-16T09:36:12.4164767Z         },
2026-06-16T09:36:12.4164895Z         "unit": {
2026-06-16T09:36:12.4165044Z           "complete": true,
2026-06-16T09:36:12.4165190Z           "evidence": [
2026-06-16T09:36:12.4165325Z             {
2026-06-16T09:36:12.4165548Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4165702Z               "line": 785
2026-06-16T09:36:12.4165830Z             },
2026-06-16T09:36:12.4165959Z             {
2026-06-16T09:36:12.4166202Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4166341Z               "line": 826
2026-06-16T09:36:12.4166469Z             },
2026-06-16T09:36:12.4166594Z             {
2026-06-16T09:36:12.4166950Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4167095Z               "line": 900
2026-06-16T09:36:12.4167224Z             }
2026-06-16T09:36:12.4167349Z           ]
2026-06-16T09:36:12.4167582Z         }
2026-06-16T09:36:12.4167706Z       }
2026-06-16T09:36:12.4167833Z     },
2026-06-16T09:36:12.4167959Z     {
2026-06-16T09:36:12.4168173Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-16T09:36:12.4172612Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-16T09:36:12.4172818Z       "requiredStages": [
2026-06-16T09:36:12.4172955Z         "impl",
2026-06-16T09:36:12.4173071Z         "unit"
2026-06-16T09:36:12.4173199Z       ],
2026-06-16T09:36:12.4173347Z       "stages": {
2026-06-16T09:36:12.4173485Z         "doc": {
2026-06-16T09:36:12.4173643Z           "complete": false,
2026-06-16T09:36:12.4173790Z           "evidence": []
2026-06-16T09:36:12.4173928Z         },
2026-06-16T09:36:12.4174053Z         "impl": {
2026-06-16T09:36:12.4174204Z           "complete": true,
2026-06-16T09:36:12.4174354Z           "evidence": [
2026-06-16T09:36:12.4174485Z             {
2026-06-16T09:36:12.4174718Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4174864Z               "line": 31
2026-06-16T09:36:12.4174984Z             }
2026-06-16T09:36:12.4175117Z           ]
2026-06-16T09:36:12.4175251Z         },
2026-06-16T09:36:12.4175380Z         "int": {
2026-06-16T09:36:12.4175536Z           "complete": false,
2026-06-16T09:36:12.4175685Z           "evidence": []
2026-06-16T09:36:12.4175818Z         },
2026-06-16T09:36:12.4175962Z         "unit": {
2026-06-16T09:36:12.4176113Z           "complete": true,
2026-06-16T09:36:12.4176267Z           "evidence": [
2026-06-16T09:36:12.4176395Z             {
2026-06-16T09:36:12.4176643Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4176786Z               "line": 181
2026-06-16T09:36:12.4176920Z             }
2026-06-16T09:36:12.4177043Z           ]
2026-06-16T09:36:12.4177173Z         }
2026-06-16T09:36:12.4177300Z       }
2026-06-16T09:36:12.4177423Z     },
2026-06-16T09:36:12.4177548Z     {
2026-06-16T09:36:12.4177764Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-16T09:36:12.4178089Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-16T09:36:12.4178242Z       "requiredStages": [
2026-06-16T09:36:12.4178370Z         "impl",
2026-06-16T09:36:12.4178500Z         "unit"
2026-06-16T09:36:12.4178632Z       ],
2026-06-16T09:36:12.4178776Z       "stages": {
2026-06-16T09:36:12.4178904Z         "doc": {
2026-06-16T09:36:12.4179130Z           "complete": false,
2026-06-16T09:36:12.4179281Z           "evidence": []
2026-06-16T09:36:12.4179401Z         },
2026-06-16T09:36:12.4179538Z         "impl": {
2026-06-16T09:36:12.4179677Z           "complete": true,
2026-06-16T09:36:12.4179825Z           "evidence": [
2026-06-16T09:36:12.4179947Z             {
2026-06-16T09:36:12.4180184Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4180331Z               "line": 49
2026-06-16T09:36:12.4180456Z             },
2026-06-16T09:36:12.4180589Z             {
2026-06-16T09:36:12.4180809Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4180951Z               "line": 81
2026-06-16T09:36:12.4181076Z             }
2026-06-16T09:36:12.4181218Z           ]
2026-06-16T09:36:12.4181353Z         },
2026-06-16T09:36:12.4181471Z         "int": {
2026-06-16T09:36:12.4181762Z           "complete": false,
2026-06-16T09:36:12.4181910Z           "evidence": []
2026-06-16T09:36:12.4182030Z         },
2026-06-16T09:36:12.4182153Z         "unit": {
2026-06-16T09:36:12.4182321Z           "complete": true,
2026-06-16T09:36:12.4182564Z           "evidence": [
2026-06-16T09:36:12.4182688Z             {
2026-06-16T09:36:12.4182929Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4183073Z               "line": 156
2026-06-16T09:36:12.4183201Z             },
2026-06-16T09:36:12.4183321Z             {
2026-06-16T09:36:12.4183559Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4183697Z               "line": 173
2026-06-16T09:36:12.4183825Z             },
2026-06-16T09:36:12.4183955Z             {
2026-06-16T09:36:12.4184183Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4184331Z               "line": 196
2026-06-16T09:36:12.4184459Z             }
2026-06-16T09:36:12.4184594Z           ]
2026-06-16T09:36:12.4184727Z         }
2026-06-16T09:36:12.4184852Z       }
2026-06-16T09:36:12.4184975Z     },
2026-06-16T09:36:12.4185098Z     {
2026-06-16T09:36:12.4185311Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-16T09:36:12.4185677Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-16T09:36:12.4185849Z       "requiredStages": [
2026-06-16T09:36:12.4188678Z         "impl",
2026-06-16T09:36:12.4188840Z         "unit"
2026-06-16T09:36:12.4189051Z       ],
2026-06-16T09:36:12.4189188Z       "stages": {
2026-06-16T09:36:12.4189327Z         "doc": {
2026-06-16T09:36:12.4189479Z           "complete": false,
2026-06-16T09:36:12.4189622Z           "evidence": []
2026-06-16T09:36:12.4189751Z         },
2026-06-16T09:36:12.4189874Z         "impl": {
2026-06-16T09:36:12.4190038Z           "complete": true,
2026-06-16T09:36:12.4190180Z           "evidence": [
2026-06-16T09:36:12.4190305Z             {
2026-06-16T09:36:12.4190545Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4190707Z               "line": 120
2026-06-16T09:36:12.4190834Z             }
2026-06-16T09:36:12.4190954Z           ]
2026-06-16T09:36:12.4191083Z         },
2026-06-16T09:36:12.4191211Z         "int": {
2026-06-16T09:36:12.4191379Z           "complete": false,
2026-06-16T09:36:12.4191525Z           "evidence": []
2026-06-16T09:36:12.4191650Z         },
2026-06-16T09:36:12.4191778Z         "unit": {
2026-06-16T09:36:12.4191923Z           "complete": true,
2026-06-16T09:36:12.4192070Z           "evidence": [
2026-06-16T09:36:12.4192198Z             {
2026-06-16T09:36:12.4192432Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4192580Z               "line": 212
2026-06-16T09:36:12.4192708Z             },
2026-06-16T09:36:12.4192833Z             {
2026-06-16T09:36:12.4193066Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4193215Z               "line": 221
2026-06-16T09:36:12.4193337Z             },
2026-06-16T09:36:12.4193479Z             {
2026-06-16T09:36:12.4193704Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4193852Z               "line": 229
2026-06-16T09:36:12.4193985Z             },
2026-06-16T09:36:12.4194109Z             {
2026-06-16T09:36:12.4194348Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4194496Z               "line": 239
2026-06-16T09:36:12.4194634Z             },
2026-06-16T09:36:12.4194758Z             {
2026-06-16T09:36:12.4194982Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-16T09:36:12.4195130Z               "line": 249
2026-06-16T09:36:12.4195262Z             }
2026-06-16T09:36:12.4195387Z           ]
2026-06-16T09:36:12.4195517Z         }
2026-06-16T09:36:12.4195644Z       }
2026-06-16T09:36:12.4195772Z     },
2026-06-16T09:36:12.4195894Z     {
2026-06-16T09:36:12.4196128Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-16T09:36:12.4196471Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-16T09:36:12.4196777Z       "requiredStages": [
2026-06-16T09:36:12.4196909Z         "impl",
2026-06-16T09:36:12.4197049Z         "unit"
2026-06-16T09:36:12.4197177Z       ],
2026-06-16T09:36:12.4197320Z       "stages": {
2026-06-16T09:36:12.4197567Z         "doc": {
2026-06-16T09:36:12.4197721Z           "complete": false,
2026-06-16T09:36:12.4197872Z           "evidence": []
2026-06-16T09:36:12.4197993Z         },
2026-06-16T09:36:12.4198134Z         "impl": {
2026-06-16T09:36:12.4198279Z           "complete": true,
2026-06-16T09:36:12.4198426Z           "evidence": [
2026-06-16T09:36:12.4198553Z             {
2026-06-16T09:36:12.4198757Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.4198904Z               "line": 14
2026-06-16T09:36:12.4199104Z             },
2026-06-16T09:36:12.4199243Z             {
2026-06-16T09:36:12.4199438Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.4199582Z               "line": 63
2026-06-16T09:36:12.4199725Z             }
2026-06-16T09:36:12.4199858Z           ]
2026-06-16T09:36:12.4199987Z         },
2026-06-16T09:36:12.4200120Z         "int": {
2026-06-16T09:36:12.4200278Z           "complete": false,
2026-06-16T09:36:12.4200425Z           "evidence": []
2026-06-16T09:36:12.4200555Z         },
2026-06-16T09:36:12.4200692Z         "unit": {
2026-06-16T09:36:12.4200846Z           "complete": true,
2026-06-16T09:36:12.4200997Z           "evidence": [
2026-06-16T09:36:12.4201120Z             {
2026-06-16T09:36:12.4201323Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.4201466Z               "line": 164
2026-06-16T09:36:12.4201601Z             },
2026-06-16T09:36:12.4201728Z             {
2026-06-16T09:36:12.4201924Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.4202071Z               "line": 198
2026-06-16T09:36:12.4202201Z             },
2026-06-16T09:36:12.4202329Z             {
2026-06-16T09:36:12.4202525Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.4202672Z               "line": 220
2026-06-16T09:36:12.4202793Z             }
2026-06-16T09:36:12.4202926Z           ]
2026-06-16T09:36:12.4203064Z         }
2026-06-16T09:36:12.4203187Z       }
2026-06-16T09:36:12.4203316Z     },
2026-06-16T09:36:12.4203465Z     {
2026-06-16T09:36:12.4203650Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-16T09:36:12.4206969Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-16T09:36:12.4207136Z       "requiredStages": [],
2026-06-16T09:36:12.4207280Z       "stages": {
2026-06-16T09:36:12.4207413Z         "doc": {
2026-06-16T09:36:12.4207561Z           "complete": true,
2026-06-16T09:36:12.4207713Z           "evidence": [
2026-06-16T09:36:12.4207842Z             {
2026-06-16T09:36:12.4208042Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4208180Z               "line": 165
2026-06-16T09:36:12.4208328Z             }
2026-06-16T09:36:12.4208456Z           ]
2026-06-16T09:36:12.4208586Z         },
2026-06-16T09:36:12.4208719Z         "impl": {
2026-06-16T09:36:12.4208873Z           "complete": false,
2026-06-16T09:36:12.4209099Z           "evidence": []
2026-06-16T09:36:12.4209228Z         },
2026-06-16T09:36:12.4209364Z         "int": {
2026-06-16T09:36:12.4209521Z           "complete": false,
2026-06-16T09:36:12.4209665Z           "evidence": []
2026-06-16T09:36:12.4209793Z         },
2026-06-16T09:36:12.4209917Z         "unit": {
2026-06-16T09:36:12.4210079Z           "complete": false,
2026-06-16T09:36:12.4210223Z           "evidence": []
2026-06-16T09:36:12.4210355Z         }
2026-06-16T09:36:12.4210490Z       }
2026-06-16T09:36:12.4210614Z     },
2026-06-16T09:36:12.4210857Z     {
2026-06-16T09:36:12.4211072Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-16T09:36:12.4211552Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-16T09:36:12.4211809Z       "requiredStages": [
2026-06-16T09:36:12.4211936Z         "impl",
2026-06-16T09:36:12.4212064Z         "unit"
2026-06-16T09:36:12.4212194Z       ],
2026-06-16T09:36:12.4212331Z       "stages": {
2026-06-16T09:36:12.4212465Z         "doc": {
2026-06-16T09:36:12.4212617Z           "complete": false,
2026-06-16T09:36:12.4212766Z           "evidence": []
2026-06-16T09:36:12.4212893Z         },
2026-06-16T09:36:12.4213028Z         "impl": {
2026-06-16T09:36:12.4213171Z           "complete": true,
2026-06-16T09:36:12.4213324Z           "evidence": [
2026-06-16T09:36:12.4213452Z             {
2026-06-16T09:36:12.4213672Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4213809Z               "line": 76
2026-06-16T09:36:12.4213944Z             },
2026-06-16T09:36:12.4214077Z             {
2026-06-16T09:36:12.4214283Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4214429Z               "line": 167
2026-06-16T09:36:12.4214556Z             },
2026-06-16T09:36:12.4214701Z             {
2026-06-16T09:36:12.4214915Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4215059Z               "line": 233
2026-06-16T09:36:12.4215195Z             },
2026-06-16T09:36:12.4215321Z             {
2026-06-16T09:36:12.4215540Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4215678Z               "line": 272
2026-06-16T09:36:12.4215801Z             }
2026-06-16T09:36:12.4215927Z           ]
2026-06-16T09:36:12.4216059Z         },
2026-06-16T09:36:12.4216189Z         "int": {
2026-06-16T09:36:12.4216331Z           "complete": false,
2026-06-16T09:36:12.4216484Z           "evidence": []
2026-06-16T09:36:12.4216613Z         },
2026-06-16T09:36:12.4216749Z         "unit": {
2026-06-16T09:36:12.4216911Z           "complete": true,
2026-06-16T09:36:12.4217057Z           "evidence": [
2026-06-16T09:36:12.4217186Z             {
2026-06-16T09:36:12.4217400Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4217554Z               "line": 321
2026-06-16T09:36:12.4217682Z             },
2026-06-16T09:36:12.4217816Z             {
2026-06-16T09:36:12.4218030Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4218178Z               "line": 329
2026-06-16T09:36:12.4218316Z             },
2026-06-16T09:36:12.4218440Z             {
2026-06-16T09:36:12.4218659Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4218803Z               "line": 356
2026-06-16T09:36:12.4219026Z             },
2026-06-16T09:36:12.4219151Z             {
2026-06-16T09:36:12.4219371Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4219509Z               "line": 395
2026-06-16T09:36:12.4219631Z             },
2026-06-16T09:36:12.4219755Z             {
2026-06-16T09:36:12.4219962Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4220111Z               "line": 406
2026-06-16T09:36:12.4220230Z             },
2026-06-16T09:36:12.4220363Z             {
2026-06-16T09:36:12.4220582Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4220726Z               "line": 418
2026-06-16T09:36:12.4220864Z             },
2026-06-16T09:36:12.4220992Z             {
2026-06-16T09:36:12.4221198Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-16T09:36:12.4221342Z               "line": 442
2026-06-16T09:36:12.4221474Z             }
2026-06-16T09:36:12.4221603Z           ]
2026-06-16T09:36:12.4221713Z         }
2026-06-16T09:36:12.4221851Z       }
2026-06-16T09:36:12.4221976Z     },
2026-06-16T09:36:12.4222103Z     {
2026-06-16T09:36:12.4222298Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-16T09:36:12.4222596Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-16T09:36:12.4222877Z       "requiredStages": [
2026-06-16T09:36:12.4223002Z         "impl",
2026-06-16T09:36:12.4223139Z         "int"
2026-06-16T09:36:12.4223264Z       ],
2026-06-16T09:36:12.4223407Z       "stages": {
2026-06-16T09:36:12.4223641Z         "doc": {
2026-06-16T09:36:12.4223802Z           "complete": false,
2026-06-16T09:36:12.4223951Z           "evidence": []
2026-06-16T09:36:12.4224084Z         },
2026-06-16T09:36:12.4224232Z         "impl": {
2026-06-16T09:36:12.4224384Z           "complete": true,
2026-06-16T09:36:12.4224533Z           "evidence": [
2026-06-16T09:36:12.4224660Z             {
2026-06-16T09:36:12.4224881Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4225027Z               "line": 22
2026-06-16T09:36:12.4225156Z             }
2026-06-16T09:36:12.4225281Z           ]
2026-06-16T09:36:12.4225403Z         },
2026-06-16T09:36:12.4225528Z         "int": {
2026-06-16T09:36:12.4225670Z           "complete": true,
2026-06-16T09:36:12.4225819Z           "evidence": [
2026-06-16T09:36:12.4225962Z             {
2026-06-16T09:36:12.4226196Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-16T09:36:12.4226337Z               "line": 18
2026-06-16T09:36:12.4226458Z             }
2026-06-16T09:36:12.4226600Z           ]
2026-06-16T09:36:12.4226714Z         },
2026-06-16T09:36:12.4226858Z         "unit": {
2026-06-16T09:36:12.4227020Z           "complete": false,
2026-06-16T09:36:12.4227168Z           "evidence": []
2026-06-16T09:36:12.4227291Z         }
2026-06-16T09:36:12.4227414Z       }
2026-06-16T09:36:12.4227546Z     },
2026-06-16T09:36:12.4227664Z     {
2026-06-16T09:36:12.4227879Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-16T09:36:12.4228285Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-16T09:36:12.4228443Z       "requiredStages": [
2026-06-16T09:36:12.4228580Z         "impl",
2026-06-16T09:36:12.4228706Z         "unit"
2026-06-16T09:36:12.4228829Z       ],
2026-06-16T09:36:12.4229049Z       "stages": {
2026-06-16T09:36:12.4229186Z         "doc": {
2026-06-16T09:36:12.4229345Z           "complete": false,
2026-06-16T09:36:12.4229491Z           "evidence": []
2026-06-16T09:36:12.4229625Z         },
2026-06-16T09:36:12.4229749Z         "impl": {
2026-06-16T09:36:12.4229911Z           "complete": true,
2026-06-16T09:36:12.4230055Z           "evidence": [
2026-06-16T09:36:12.4230181Z             {
2026-06-16T09:36:12.4230423Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4230570Z               "line": 415
2026-06-16T09:36:12.4230695Z             },
2026-06-16T09:36:12.4230823Z             {
2026-06-16T09:36:12.4231047Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-16T09:36:12.4231189Z               "line": 27
2026-06-16T09:36:12.4231315Z             }
2026-06-16T09:36:12.4231443Z           ]
2026-06-16T09:36:12.4231572Z         },
2026-06-16T09:36:12.4231710Z         "int": {
2026-06-16T09:36:12.4231858Z           "complete": false,
2026-06-16T09:36:12.4232015Z           "evidence": []
2026-06-16T09:36:12.4232144Z         },
2026-06-16T09:36:12.4232278Z         "unit": {
2026-06-16T09:36:12.4232430Z           "complete": true,
2026-06-16T09:36:12.4232574Z           "evidence": [
2026-06-16T09:36:12.4232710Z             {
2026-06-16T09:36:12.4232943Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4233084Z               "line": 940
2026-06-16T09:36:12.4233218Z             },
2026-06-16T09:36:12.4233347Z             {
2026-06-16T09:36:12.4233562Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-16T09:36:12.4233699Z               "line": 181
2026-06-16T09:36:12.4233824Z             }
2026-06-16T09:36:12.4233953Z           ]
2026-06-16T09:36:12.4234081Z         }
2026-06-16T09:36:12.4234206Z       }
2026-06-16T09:36:12.4234338Z     },
2026-06-16T09:36:12.4234459Z     {
2026-06-16T09:36:12.4234672Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-16T09:36:12.4235016Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-16T09:36:12.4235292Z       "requiredStages": [
2026-06-16T09:36:12.4235422Z         "impl",
2026-06-16T09:36:12.4235559Z         "unit"
2026-06-16T09:36:12.4235682Z       ],
2026-06-16T09:36:12.4235920Z       "stages": {
2026-06-16T09:36:12.4236050Z         "doc": {
2026-06-16T09:36:12.4236212Z           "complete": false,
2026-06-16T09:36:12.4236355Z           "evidence": []
2026-06-16T09:36:12.4236483Z         },
2026-06-16T09:36:12.4236607Z         "impl": {
2026-06-16T09:36:12.4236756Z           "complete": true,
2026-06-16T09:36:12.4236902Z           "evidence": [
2026-06-16T09:36:12.4237028Z             {
2026-06-16T09:36:12.4237260Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.4237405Z               "line": 73
2026-06-16T09:36:12.4237532Z             },
2026-06-16T09:36:12.4237652Z             {
2026-06-16T09:36:12.4237893Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.4238037Z               "line": 955
2026-06-16T09:36:12.4238163Z             },
2026-06-16T09:36:12.4238292Z             {
2026-06-16T09:36:12.4238511Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-16T09:36:12.4238660Z               "line": 20
2026-06-16T09:36:12.4238788Z             },
2026-06-16T09:36:12.4238907Z             {
2026-06-16T09:36:12.4239188Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-16T09:36:12.4239322Z               "line": 100
2026-06-16T09:36:12.4239455Z             },
2026-06-16T09:36:12.4239575Z             {
2026-06-16T09:36:12.4239784Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-16T09:36:12.4239924Z               "line": 555
2026-06-16T09:36:12.4240051Z             },
2026-06-16T09:36:12.4240176Z             {
2026-06-16T09:36:12.4240404Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-16T09:36:12.4240544Z               "line": 68
2026-06-16T09:36:12.4240675Z             },
2026-06-16T09:36:12.4240798Z             {
2026-06-16T09:36:12.4241040Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-16T09:36:12.4241183Z               "line": 80
2026-06-16T09:36:12.4241312Z             }
2026-06-16T09:36:12.4241440Z           ]
2026-06-16T09:36:12.4241575Z         },
2026-06-16T09:36:12.4241707Z         "int": {
2026-06-16T09:36:12.4241851Z           "complete": true,
2026-06-16T09:36:12.4241993Z           "evidence": [
2026-06-16T09:36:12.4242108Z             {
2026-06-16T09:36:12.4242332Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-16T09:36:12.4242476Z               "line": 44
2026-06-16T09:36:12.4242613Z             }
2026-06-16T09:36:12.4242743Z           ]
2026-06-16T09:36:12.4242871Z         },
2026-06-16T09:36:12.4243004Z         "unit": {
2026-06-16T09:36:12.4243158Z           "complete": true,
2026-06-16T09:36:12.4243303Z           "evidence": [
2026-06-16T09:36:12.4243437Z             {
2026-06-16T09:36:12.4243682Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.4243831Z               "line": 1155
2026-06-16T09:36:12.4243973Z             },
2026-06-16T09:36:12.4244094Z             {
2026-06-16T09:36:12.4244322Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.4244470Z               "line": 1171
2026-06-16T09:36:12.4244607Z             },
2026-06-16T09:36:12.4244747Z             {
2026-06-16T09:36:12.4244975Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.4245128Z               "line": 1488
2026-06-16T09:36:12.4245256Z             },
2026-06-16T09:36:12.4245386Z             {
2026-06-16T09:36:12.4245605Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-16T09:36:12.4245748Z               "line": 152
2026-06-16T09:36:12.4245881Z             },
2026-06-16T09:36:12.4246006Z             {
2026-06-16T09:36:12.4246223Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-16T09:36:12.4246372Z               "line": 175
2026-06-16T09:36:12.4246499Z             },
2026-06-16T09:36:12.4246763Z             {
2026-06-16T09:36:12.4246968Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-16T09:36:12.4247110Z               "line": 186
2026-06-16T09:36:12.4247234Z             },
2026-06-16T09:36:12.4247358Z             {
2026-06-16T09:36:12.4247696Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-16T09:36:12.4247840Z               "line": 202
2026-06-16T09:36:12.4247974Z             },
2026-06-16T09:36:12.4248102Z             {
2026-06-16T09:36:12.4248322Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-16T09:36:12.4248468Z               "line": 216
2026-06-16T09:36:12.4248597Z             },
2026-06-16T09:36:12.4248728Z             {
2026-06-16T09:36:12.4249033Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-16T09:36:12.4249176Z               "line": 137
2026-06-16T09:36:12.4249306Z             },
2026-06-16T09:36:12.4249438Z             {
2026-06-16T09:36:12.4249635Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4249787Z               "line": 7057
2026-06-16T09:36:12.4249920Z             },
2026-06-16T09:36:12.4250044Z             {
2026-06-16T09:36:12.4250258Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-16T09:36:12.4250406Z               "line": 30
2026-06-16T09:36:12.4250545Z             },
2026-06-16T09:36:12.4250664Z             {
2026-06-16T09:36:12.4250878Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-16T09:36:12.4251022Z               "line": 73
2026-06-16T09:36:12.4251147Z             }
2026-06-16T09:36:12.4251278Z           ]
2026-06-16T09:36:12.4251392Z         }
2026-06-16T09:36:12.4251520Z       }
2026-06-16T09:36:12.4251638Z     },
2026-06-16T09:36:12.4251767Z     {
2026-06-16T09:36:12.4251948Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-16T09:36:12.4252506Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-16T09:36:12.4252668Z       "requiredStages": [
2026-06-16T09:36:12.4252806Z         "impl",
2026-06-16T09:36:12.4252940Z         "unit"
2026-06-16T09:36:12.4253065Z       ],
2026-06-16T09:36:12.4253202Z       "stages": {
2026-06-16T09:36:12.4253342Z         "doc": {
2026-06-16T09:36:12.4253493Z           "complete": true,
2026-06-16T09:36:12.4253637Z           "evidence": [
2026-06-16T09:36:12.4253760Z             {
2026-06-16T09:36:12.4253964Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4254115Z               "line": 133
2026-06-16T09:36:12.4254233Z             }
2026-06-16T09:36:12.4254373Z           ]
2026-06-16T09:36:12.4254496Z         },
2026-06-16T09:36:12.4254639Z         "impl": {
2026-06-16T09:36:12.4254791Z           "complete": true,
2026-06-16T09:36:12.4254940Z           "evidence": [
2026-06-16T09:36:12.4255068Z             {
2026-06-16T09:36:12.4255269Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.4255416Z               "line": 65
2026-06-16T09:36:12.4255554Z             },
2026-06-16T09:36:12.4255683Z             {
2026-06-16T09:36:12.4255894Z               "path": "crates/spt-proto/src/id.rs",
2026-06-16T09:36:12.4256040Z               "line": 17
2026-06-16T09:36:12.4256170Z             },
2026-06-16T09:36:12.4256303Z             {
2026-06-16T09:36:12.4256538Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.4256688Z               "line": 146
2026-06-16T09:36:12.4256821Z             },
2026-06-16T09:36:12.4256937Z             {
2026-06-16T09:36:12.4257150Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.4257304Z               "line": 241
2026-06-16T09:36:12.4257427Z             },
2026-06-16T09:36:12.4257566Z             {
2026-06-16T09:36:12.4257770Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.4257923Z               "line": 340
2026-06-16T09:36:12.4258051Z             },
2026-06-16T09:36:12.4258177Z             {
2026-06-16T09:36:12.4258390Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.4258534Z               "line": 32
2026-06-16T09:36:12.4258783Z             },
2026-06-16T09:36:12.4258905Z             {
2026-06-16T09:36:12.4259167Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4259312Z               "line": 1221
2026-06-16T09:36:12.4259450Z             },
2026-06-16T09:36:12.4259679Z             {
2026-06-16T09:36:12.4259866Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4260017Z               "line": 5498
2026-06-16T09:36:12.4260142Z             },
2026-06-16T09:36:12.4260279Z             {
2026-06-16T09:36:12.4260462Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4260608Z               "line": 5780
2026-06-16T09:36:12.4260734Z             }
2026-06-16T09:36:12.4260858Z           ]
2026-06-16T09:36:12.4260976Z         },
2026-06-16T09:36:12.4261110Z         "int": {
2026-06-16T09:36:12.4261267Z           "complete": false,
2026-06-16T09:36:12.4261416Z           "evidence": []
2026-06-16T09:36:12.4261543Z         },
2026-06-16T09:36:12.4261683Z         "unit": {
2026-06-16T09:36:12.4261824Z           "complete": true,
2026-06-16T09:36:12.4261971Z           "evidence": [
2026-06-16T09:36:12.4262099Z             {
2026-06-16T09:36:12.4262303Z               "path": "crates/spt-proto/src/id.rs",
2026-06-16T09:36:12.4262442Z               "line": 94
2026-06-16T09:36:12.4262579Z             },
2026-06-16T09:36:12.4262709Z             {
2026-06-16T09:36:12.4262899Z               "path": "crates/spt-proto/src/id.rs",
2026-06-16T09:36:12.4263038Z               "line": 111
2026-06-16T09:36:12.4263161Z             },
2026-06-16T09:36:12.4263291Z             {
2026-06-16T09:36:12.4263481Z               "path": "crates/spt-proto/src/id.rs",
2026-06-16T09:36:12.4263620Z               "line": 124
2026-06-16T09:36:12.4263752Z             },
2026-06-16T09:36:12.4263882Z             {
2026-06-16T09:36:12.4264072Z               "path": "crates/spt-proto/src/id.rs",
2026-06-16T09:36:12.4264216Z               "line": 134
2026-06-16T09:36:12.4264353Z             },
2026-06-16T09:36:12.4264471Z             {
2026-06-16T09:36:12.4264679Z               "path": "crates/spt-proto/src/id.rs",
2026-06-16T09:36:12.4264827Z               "line": 144
2026-06-16T09:36:12.4264952Z             },
2026-06-16T09:36:12.4265075Z             {
2026-06-16T09:36:12.4265280Z               "path": "crates/spt-proto/src/id.rs",
2026-06-16T09:36:12.4265422Z               "line": 156
2026-06-16T09:36:12.4265552Z             },
2026-06-16T09:36:12.4265685Z             {
2026-06-16T09:36:12.4265938Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4266086Z               "line": 746
2026-06-16T09:36:12.4266215Z             },
2026-06-16T09:36:12.4266343Z             {
2026-06-16T09:36:12.4266586Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.4266725Z               "line": 309
2026-06-16T09:36:12.4266854Z             }
2026-06-16T09:36:12.4266992Z           ]
2026-06-16T09:36:12.4267113Z         }
2026-06-16T09:36:12.4267244Z       }
2026-06-16T09:36:12.4267367Z     },
2026-06-16T09:36:12.4267497Z     {
2026-06-16T09:36:12.4267687Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-16T09:36:12.4267944Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-16T09:36:12.4268102Z       "requiredStages": [
2026-06-16T09:36:12.4268235Z         "impl",
2026-06-16T09:36:12.4268374Z         "unit"
2026-06-16T09:36:12.4268493Z       ],
2026-06-16T09:36:12.4268631Z       "stages": {
2026-06-16T09:36:12.4268760Z         "doc": {
2026-06-16T09:36:12.4268926Z           "complete": false,
2026-06-16T09:36:12.4269146Z           "evidence": []
2026-06-16T09:36:12.4269275Z         },
2026-06-16T09:36:12.4269414Z         "impl": {
2026-06-16T09:36:12.4269560Z           "complete": true,
2026-06-16T09:36:12.4269707Z           "evidence": [
2026-06-16T09:36:12.4269834Z             {
2026-06-16T09:36:12.4270054Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.4270205Z               "line": 128
2026-06-16T09:36:12.4270330Z             }
2026-06-16T09:36:12.4270577Z           ]
2026-06-16T09:36:12.4270698Z         },
2026-06-16T09:36:12.4270825Z         "int": {
2026-06-16T09:36:12.4270979Z           "complete": false,
2026-06-16T09:36:12.4271131Z           "evidence": []
2026-06-16T09:36:12.4271360Z         },
2026-06-16T09:36:12.4271498Z         "unit": {
2026-06-16T09:36:12.4271656Z           "complete": true,
2026-06-16T09:36:12.4271793Z           "evidence": [
2026-06-16T09:36:12.4271929Z             {
2026-06-16T09:36:12.4272137Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.4272282Z               "line": 205
2026-06-16T09:36:12.4272417Z             }
2026-06-16T09:36:12.4272541Z           ]
2026-06-16T09:36:12.4272678Z         }
2026-06-16T09:36:12.4272801Z       }
2026-06-16T09:36:12.4272935Z     },
2026-06-16T09:36:12.4273053Z     {
2026-06-16T09:36:12.4273269Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-16T09:36:12.4273579Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-16T09:36:12.4273731Z       "requiredStages": [
2026-06-16T09:36:12.4273875Z         "impl",
2026-06-16T09:36:12.4274007Z         "unit"
2026-06-16T09:36:12.4274137Z       ],
2026-06-16T09:36:12.4274274Z       "stages": {
2026-06-16T09:36:12.4274403Z         "doc": {
2026-06-16T09:36:12.4274575Z           "complete": false,
2026-06-16T09:36:12.4274709Z           "evidence": []
2026-06-16T09:36:12.4274843Z         },
2026-06-16T09:36:12.4274970Z         "impl": {
2026-06-16T09:36:12.4275122Z           "complete": true,
2026-06-16T09:36:12.4275268Z           "evidence": [
2026-06-16T09:36:12.4275401Z             {
2026-06-16T09:36:12.4275606Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4275755Z               "line": 263
2026-06-16T09:36:12.4275879Z             },
2026-06-16T09:36:12.4276016Z             {
2026-06-16T09:36:12.4276222Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4276365Z               "line": 274
2026-06-16T09:36:12.4276493Z             },
2026-06-16T09:36:12.4276631Z             {
2026-06-16T09:36:12.4276837Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4276985Z               "line": 292
2026-06-16T09:36:12.4277108Z             }
2026-06-16T09:36:12.4277252Z           ]
2026-06-16T09:36:12.4277381Z         },
2026-06-16T09:36:12.4277509Z         "int": {
2026-06-16T09:36:12.4277658Z           "complete": false,
2026-06-16T09:36:12.4277799Z           "evidence": []
2026-06-16T09:36:12.4277927Z         },
2026-06-16T09:36:12.4278067Z         "unit": {
2026-06-16T09:36:12.4278213Z           "complete": true,
2026-06-16T09:36:12.4278357Z           "evidence": [
2026-06-16T09:36:12.4278480Z             {
2026-06-16T09:36:12.4278686Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4278833Z               "line": 316
2026-06-16T09:36:12.4279058Z             },
2026-06-16T09:36:12.4279191Z             {
2026-06-16T09:36:12.4279401Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4279540Z               "line": 337
2026-06-16T09:36:12.4279678Z             },
2026-06-16T09:36:12.4279815Z             {
2026-06-16T09:36:12.4280025Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4280177Z               "line": 617
2026-06-16T09:36:12.4280305Z             },
2026-06-16T09:36:12.4280437Z             {
2026-06-16T09:36:12.4280638Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4280789Z               "line": 628
2026-06-16T09:36:12.4280929Z             },
2026-06-16T09:36:12.4281047Z             {
2026-06-16T09:36:12.4281253Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4281390Z               "line": 641
2026-06-16T09:36:12.4281525Z             }
2026-06-16T09:36:12.4281649Z           ]
2026-06-16T09:36:12.4281772Z         }
2026-06-16T09:36:12.4281911Z       }
2026-06-16T09:36:12.4282029Z     },
2026-06-16T09:36:12.4282159Z     {
2026-06-16T09:36:12.4282358Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-16T09:36:12.4284005Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-16T09:36:12.4284291Z       "requiredStages": [
2026-06-16T09:36:12.4284421Z         "impl",
2026-06-16T09:36:12.4284549Z         "unit"
2026-06-16T09:36:12.4284668Z       ],
2026-06-16T09:36:12.4284811Z       "stages": {
2026-06-16T09:36:12.4284935Z         "doc": {
2026-06-16T09:36:12.4285098Z           "complete": false,
2026-06-16T09:36:12.4285240Z           "evidence": []
2026-06-16T09:36:12.4285370Z         },
2026-06-16T09:36:12.4285511Z         "impl": {
2026-06-16T09:36:12.4285663Z           "complete": true,
2026-06-16T09:36:12.4285809Z           "evidence": [
2026-06-16T09:36:12.4285937Z             {
2026-06-16T09:36:12.4286180Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.4286330Z               "line": 759
2026-06-16T09:36:12.4286453Z             }
2026-06-16T09:36:12.4286576Z           ]
2026-06-16T09:36:12.4286701Z         },
2026-06-16T09:36:12.4286829Z         "int": {
2026-06-16T09:36:12.4286992Z           "complete": false,
2026-06-16T09:36:12.4287139Z           "evidence": []
2026-06-16T09:36:12.4287264Z         },
2026-06-16T09:36:12.4287397Z         "unit": {
2026-06-16T09:36:12.4287555Z           "complete": true,
2026-06-16T09:36:12.4287692Z           "evidence": [
2026-06-16T09:36:12.4287821Z             {
2026-06-16T09:36:12.4288054Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.4288204Z               "line": 873
2026-06-16T09:36:12.4288336Z             }
2026-06-16T09:36:12.4288458Z           ]
2026-06-16T09:36:12.4288588Z         }
2026-06-16T09:36:12.4288712Z       }
2026-06-16T09:36:12.4288840Z     },
2026-06-16T09:36:12.4289050Z     {
2026-06-16T09:36:12.4289242Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-16T09:36:12.4289718Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-16T09:36:12.4289876Z       "requiredStages": [
2026-06-16T09:36:12.4290013Z         "impl",
2026-06-16T09:36:12.4290148Z         "unit"
2026-06-16T09:36:12.4290275Z       ],
2026-06-16T09:36:12.4290419Z       "stages": {
2026-06-16T09:36:12.4290548Z         "doc": {
2026-06-16T09:36:12.4290699Z           "complete": false,
2026-06-16T09:36:12.4290842Z           "evidence": []
2026-06-16T09:36:12.4290969Z         },
2026-06-16T09:36:12.4291093Z         "impl": {
2026-06-16T09:36:12.4291240Z           "complete": true,
2026-06-16T09:36:12.4291383Z           "evidence": [
2026-06-16T09:36:12.4291518Z             {
2026-06-16T09:36:12.4291722Z               "path": "crates/spt/src/api/auth.rs",
2026-06-16T09:36:12.4291856Z               "line": 14
2026-06-16T09:36:12.4291983Z             },
2026-06-16T09:36:12.4292109Z             {
2026-06-16T09:36:12.4292308Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.4292452Z               "line": 495
2026-06-16T09:36:12.4292580Z             }
2026-06-16T09:36:12.4292710Z           ]
2026-06-16T09:36:12.4292838Z         },
2026-06-16T09:36:12.4292962Z         "int": {
2026-06-16T09:36:12.4293119Z           "complete": false,
2026-06-16T09:36:12.4293267Z           "evidence": []
2026-06-16T09:36:12.4293392Z         },
2026-06-16T09:36:12.4293533Z         "unit": {
2026-06-16T09:36:12.4293676Z           "complete": true,
2026-06-16T09:36:12.4296374Z           "evidence": [
2026-06-16T09:36:12.4296541Z             {
2026-06-16T09:36:12.4296760Z               "path": "crates/spt/src/api/auth.rs",
2026-06-16T09:36:12.4296909Z               "line": 130
2026-06-16T09:36:12.4297036Z             },
2026-06-16T09:36:12.4297161Z             {
2026-06-16T09:36:12.4297374Z               "path": "crates/spt/src/api/auth.rs",
2026-06-16T09:36:12.4297519Z               "line": 138
2026-06-16T09:36:12.4297647Z             },
2026-06-16T09:36:12.4297770Z             {
2026-06-16T09:36:12.4298163Z               "path": "crates/spt/src/api/auth.rs",
2026-06-16T09:36:12.4298315Z               "line": 146
2026-06-16T09:36:12.4298444Z             },
2026-06-16T09:36:12.4298572Z             {
2026-06-16T09:36:12.4298764Z               "path": "crates/spt/src/api/auth.rs",
2026-06-16T09:36:12.4299257Z               "line": 154
2026-06-16T09:36:12.4299381Z             },
2026-06-16T09:36:12.4299520Z             {
2026-06-16T09:36:12.4299720Z               "path": "crates/spt/src/api/auth.rs",
2026-06-16T09:36:12.4299864Z               "line": 162
2026-06-16T09:36:12.4299991Z             },
2026-06-16T09:36:12.4300116Z             {
2026-06-16T09:36:12.4300320Z               "path": "crates/spt/src/api/auth.rs",
2026-06-16T09:36:12.4300455Z               "line": 170
2026-06-16T09:36:12.4300578Z             }
2026-06-16T09:36:12.4300708Z           ]
2026-06-16T09:36:12.4300831Z         }
2026-06-16T09:36:12.4300955Z       }
2026-06-16T09:36:12.4301080Z     },
2026-06-16T09:36:12.4301207Z     {
2026-06-16T09:36:12.4301407Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-16T09:36:12.4303551Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-16T09:36:12.4303731Z       "requiredStages": [
2026-06-16T09:36:12.4303857Z         "impl",
2026-06-16T09:36:12.4303985Z         "unit"
2026-06-16T09:36:12.4304102Z       ],
2026-06-16T09:36:12.4304246Z       "stages": {
2026-06-16T09:36:12.4304377Z         "doc": {
2026-06-16T09:36:12.4304529Z           "complete": false,
2026-06-16T09:36:12.4304678Z           "evidence": []
2026-06-16T09:36:12.4304796Z         },
2026-06-16T09:36:12.4304921Z         "impl": {
2026-06-16T09:36:12.4305072Z           "complete": true,
2026-06-16T09:36:12.4305221Z           "evidence": [
2026-06-16T09:36:12.4305350Z             {
2026-06-16T09:36:12.4305660Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-16T09:36:12.4305808Z               "line": 34
2026-06-16T09:36:12.4305931Z             }
2026-06-16T09:36:12.4306065Z           ]
2026-06-16T09:36:12.4306190Z         },
2026-06-16T09:36:12.4306342Z         "int": {
2026-06-16T09:36:12.4306490Z           "complete": false,
2026-06-16T09:36:12.4306640Z           "evidence": []
2026-06-16T09:36:12.4306774Z         },
2026-06-16T09:36:12.4306911Z         "unit": {
2026-06-16T09:36:12.4307067Z           "complete": true,
2026-06-16T09:36:12.4307217Z           "evidence": [
2026-06-16T09:36:12.4307353Z             {
2026-06-16T09:36:12.4307634Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-16T09:36:12.4307769Z               "line": 188
2026-06-16T09:36:12.4307907Z             },
2026-06-16T09:36:12.4308036Z             {
2026-06-16T09:36:12.4308322Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-16T09:36:12.4308470Z               "line": 200
2026-06-16T09:36:12.4308607Z             },
2026-06-16T09:36:12.4308733Z             {
2026-06-16T09:36:12.4309095Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-16T09:36:12.4309237Z               "line": 211
2026-06-16T09:36:12.4309377Z             },
2026-06-16T09:36:12.4309498Z             {
2026-06-16T09:36:12.4309776Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-16T09:36:12.4309927Z               "line": 253
2026-06-16T09:36:12.4310052Z             },
2026-06-16T09:36:12.4310184Z             {
2026-06-16T09:36:12.4310466Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-16T09:36:12.4310610Z               "line": 277
2026-06-16T09:36:12.4310743Z             },
2026-06-16T09:36:12.4310867Z             {
2026-06-16T09:36:12.4311153Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-16T09:36:12.4311292Z               "line": 300
2026-06-16T09:36:12.4311434Z             },
2026-06-16T09:36:12.4311691Z             {
2026-06-16T09:36:12.4311962Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-16T09:36:12.4312103Z               "line": 316
2026-06-16T09:36:12.4312232Z             }
2026-06-16T09:36:12.4312460Z           ]
2026-06-16T09:36:12.4312590Z         }
2026-06-16T09:36:12.4312713Z       }
2026-06-16T09:36:12.4312842Z     },
2026-06-16T09:36:12.4312967Z     {
2026-06-16T09:36:12.4313172Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-16T09:36:12.4314512Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-16T09:36:12.4314672Z       "requiredStages": [
2026-06-16T09:36:12.4314806Z         "impl",
2026-06-16T09:36:12.4314932Z         "unit"
2026-06-16T09:36:12.4315056Z       ],
2026-06-16T09:36:12.4315186Z       "stages": {
2026-06-16T09:36:12.4315327Z         "doc": {
2026-06-16T09:36:12.4315486Z           "complete": false,
2026-06-16T09:36:12.4315633Z           "evidence": []
2026-06-16T09:36:12.4315763Z         },
2026-06-16T09:36:12.4315891Z         "impl": {
2026-06-16T09:36:12.4316043Z           "complete": true,
2026-06-16T09:36:12.4316191Z           "evidence": [
2026-06-16T09:36:12.4316315Z             {
2026-06-16T09:36:12.4316543Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4316688Z               "line": 29
2026-06-16T09:36:12.4316811Z             },
2026-06-16T09:36:12.4316930Z             {
2026-06-16T09:36:12.4317149Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4317305Z               "line": 174
2026-06-16T09:36:12.4317434Z             },
2026-06-16T09:36:12.4317555Z             {
2026-06-16T09:36:12.4317772Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4317913Z               "line": 194
2026-06-16T09:36:12.4318039Z             },
2026-06-16T09:36:12.4318228Z             {
2026-06-16T09:36:12.4318443Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4318596Z               "line": 222
2026-06-16T09:36:12.4318720Z             }
2026-06-16T09:36:12.4318843Z           ]
2026-06-16T09:36:12.4319072Z         },
2026-06-16T09:36:12.4319196Z         "int": {
2026-06-16T09:36:12.4319354Z           "complete": false,
2026-06-16T09:36:12.4319497Z           "evidence": []
2026-06-16T09:36:12.4319622Z         },
2026-06-16T09:36:12.4319759Z         "unit": {
2026-06-16T09:36:12.4319913Z           "complete": true,
2026-06-16T09:36:12.4320059Z           "evidence": [
2026-06-16T09:36:12.4320182Z             {
2026-06-16T09:36:12.4320392Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4320536Z               "line": 329
2026-06-16T09:36:12.4320665Z             },
2026-06-16T09:36:12.4320788Z             {
2026-06-16T09:36:12.4320999Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4321150Z               "line": 344
2026-06-16T09:36:12.4321279Z             },
2026-06-16T09:36:12.4321402Z             {
2026-06-16T09:36:12.4321608Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4321756Z               "line": 417
2026-06-16T09:36:12.4321895Z             },
2026-06-16T09:36:12.4322022Z             {
2026-06-16T09:36:12.4322233Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4322374Z               "line": 433
2026-06-16T09:36:12.4322504Z             },
2026-06-16T09:36:12.4322620Z             {
2026-06-16T09:36:12.4322840Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4322982Z               "line": 492
2026-06-16T09:36:12.4323107Z             },
2026-06-16T09:36:12.4323236Z             {
2026-06-16T09:36:12.4323446Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4323593Z               "line": 506
2026-06-16T09:36:12.4323722Z             },
2026-06-16T09:36:12.4323841Z             {
2026-06-16T09:36:12.4324189Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4324332Z               "line": 517
2026-06-16T09:36:12.4324461Z             },
2026-06-16T09:36:12.4324580Z             {
2026-06-16T09:36:12.4324790Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4325025Z               "line": 528
2026-06-16T09:36:12.4325156Z             }
2026-06-16T09:36:12.4325279Z           ]
2026-06-16T09:36:12.4325408Z         }
2026-06-16T09:36:12.4325540Z       }
2026-06-16T09:36:12.4325654Z     },
2026-06-16T09:36:12.4325784Z     {
2026-06-16T09:36:12.4326003Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-16T09:36:12.4327544Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-16T09:36:12.4327709Z       "requiredStages": [
2026-06-16T09:36:12.4327851Z         "impl",
2026-06-16T09:36:12.4327989Z         "unit"
2026-06-16T09:36:12.4328116Z       ],
2026-06-16T09:36:12.4328255Z       "stages": {
2026-06-16T09:36:12.4328388Z         "doc": {
2026-06-16T09:36:12.4328546Z           "complete": false,
2026-06-16T09:36:12.4328712Z           "evidence": []
2026-06-16T09:36:12.4328836Z         },
2026-06-16T09:36:12.4329046Z         "impl": {
2026-06-16T09:36:12.4329199Z           "complete": true,
2026-06-16T09:36:12.4329347Z           "evidence": [
2026-06-16T09:36:12.4329475Z             {
2026-06-16T09:36:12.4329732Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4329867Z               "line": 27
2026-06-16T09:36:12.4329990Z             },
2026-06-16T09:36:12.4330115Z             {
2026-06-16T09:36:12.4330367Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4330511Z               "line": 110
2026-06-16T09:36:12.4330638Z             },
2026-06-16T09:36:12.4330757Z             {
2026-06-16T09:36:12.4331014Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4331163Z               "line": 153
2026-06-16T09:36:12.4331295Z             },
2026-06-16T09:36:12.4331416Z             {
2026-06-16T09:36:12.4331677Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4331821Z               "line": 182
2026-06-16T09:36:12.4331953Z             },
2026-06-16T09:36:12.4332074Z             {
2026-06-16T09:36:12.4332365Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.4332507Z               "line": 31
2026-06-16T09:36:12.4332626Z             },
2026-06-16T09:36:12.4332751Z             {
2026-06-16T09:36:12.4333035Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.4333180Z               "line": 113
2026-06-16T09:36:12.4333309Z             },
2026-06-16T09:36:12.4333424Z             {
2026-06-16T09:36:12.4333711Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.4333862Z               "line": 138
2026-06-16T09:36:12.4333987Z             }
2026-06-16T09:36:12.4334111Z           ]
2026-06-16T09:36:12.4334239Z         },
2026-06-16T09:36:12.4334373Z         "int": {
2026-06-16T09:36:12.4334529Z           "complete": false,
2026-06-16T09:36:12.4334679Z           "evidence": []
2026-06-16T09:36:12.4334811Z         },
2026-06-16T09:36:12.4334946Z         "unit": {
2026-06-16T09:36:12.4335097Z           "complete": true,
2026-06-16T09:36:12.4335237Z           "evidence": [
2026-06-16T09:36:12.4335364Z             {
2026-06-16T09:36:12.4335619Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4335764Z               "line": 261
2026-06-16T09:36:12.4335892Z             },
2026-06-16T09:36:12.4336024Z             {
2026-06-16T09:36:12.4336282Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4336424Z               "line": 276
2026-06-16T09:36:12.4336559Z             },
2026-06-16T09:36:12.4336805Z             {
2026-06-16T09:36:12.4337058Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4337207Z               "line": 293
2026-06-16T09:36:12.4337331Z             },
2026-06-16T09:36:12.4337454Z             {
2026-06-16T09:36:12.4337813Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4337964Z               "line": 310
2026-06-16T09:36:12.4338084Z             },
2026-06-16T09:36:12.4338213Z             {
2026-06-16T09:36:12.4338474Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4338619Z               "line": 327
2026-06-16T09:36:12.4338757Z             },
2026-06-16T09:36:12.4338873Z             {
2026-06-16T09:36:12.4339206Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.4339348Z               "line": 366
2026-06-16T09:36:12.4339473Z             },
2026-06-16T09:36:12.4339606Z             {
2026-06-16T09:36:12.4339887Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.4340040Z               "line": 179
2026-06-16T09:36:12.4340174Z             },
2026-06-16T09:36:12.4340297Z             {
2026-06-16T09:36:12.4340579Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.4340728Z               "line": 194
2026-06-16T09:36:12.4340860Z             },
2026-06-16T09:36:12.4340980Z             {
2026-06-16T09:36:12.4341269Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.4341413Z               "line": 204
2026-06-16T09:36:12.4341541Z             },
2026-06-16T09:36:12.4341666Z             {
2026-06-16T09:36:12.4341956Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.4342099Z               "line": 259
2026-06-16T09:36:12.4342222Z             },
2026-06-16T09:36:12.4342348Z             {
2026-06-16T09:36:12.4342625Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.4342776Z               "line": 269
2026-06-16T09:36:12.4342900Z             },
2026-06-16T09:36:12.4343025Z             {
2026-06-16T09:36:12.4343316Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.4343457Z               "line": 283
2026-06-16T09:36:12.4343595Z             }
2026-06-16T09:36:12.4343713Z           ]
2026-06-16T09:36:12.4343840Z         }
2026-06-16T09:36:12.4343970Z       }
2026-06-16T09:36:12.4344098Z     },
2026-06-16T09:36:12.4344223Z     {
2026-06-16T09:36:12.4344422Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-16T09:36:12.4344833Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-16T09:36:12.4344995Z       "requiredStages": [],
2026-06-16T09:36:12.4345128Z       "stages": {
2026-06-16T09:36:12.4345267Z         "doc": {
2026-06-16T09:36:12.4345428Z           "complete": false,
2026-06-16T09:36:12.4345577Z           "evidence": []
2026-06-16T09:36:12.4345696Z         },
2026-06-16T09:36:12.4345830Z         "impl": {
2026-06-16T09:36:12.4345991Z           "complete": false,
2026-06-16T09:36:12.4346126Z           "evidence": []
2026-06-16T09:36:12.4346258Z         },
2026-06-16T09:36:12.4346390Z         "int": {
2026-06-16T09:36:12.4346538Z           "complete": false,
2026-06-16T09:36:12.4346674Z           "evidence": []
2026-06-16T09:36:12.4346803Z         },
2026-06-16T09:36:12.4346937Z         "unit": {
2026-06-16T09:36:12.4347080Z           "complete": false,
2026-06-16T09:36:12.4347229Z           "evidence": []
2026-06-16T09:36:12.4347356Z         }
2026-06-16T09:36:12.4347476Z       }
2026-06-16T09:36:12.4347599Z     },
2026-06-16T09:36:12.4347724Z     {
2026-06-16T09:36:12.4347957Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-16T09:36:12.4349903Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-16T09:36:12.4350214Z       "requiredStages": [
2026-06-16T09:36:12.4350348Z         "impl",
2026-06-16T09:36:12.4350476Z         "unit"
2026-06-16T09:36:12.4350596Z       ],
2026-06-16T09:36:12.4350734Z       "stages": {
2026-06-16T09:36:12.4350973Z         "doc": {
2026-06-16T09:36:12.4351130Z           "complete": false,
2026-06-16T09:36:12.4351279Z           "evidence": []
2026-06-16T09:36:12.4351396Z         },
2026-06-16T09:36:12.4351536Z         "impl": {
2026-06-16T09:36:12.4351683Z           "complete": true,
2026-06-16T09:36:12.4351829Z           "evidence": [
2026-06-16T09:36:12.4351954Z             {
2026-06-16T09:36:12.4352192Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4352340Z               "line": 26
2026-06-16T09:36:12.4352463Z             },
2026-06-16T09:36:12.4352603Z             {
2026-06-16T09:36:12.4352835Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4352984Z               "line": 95
2026-06-16T09:36:12.4353136Z             },
2026-06-16T09:36:12.4353261Z             {
2026-06-16T09:36:12.4353495Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4353641Z               "line": 166
2026-06-16T09:36:12.4353770Z             },
2026-06-16T09:36:12.4353895Z             {
2026-06-16T09:36:12.4354122Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-16T09:36:12.4354268Z               "line": 19
2026-06-16T09:36:12.4354401Z             },
2026-06-16T09:36:12.4354521Z             {
2026-06-16T09:36:12.4354744Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-16T09:36:12.4354887Z               "line": 50
2026-06-16T09:36:12.4355015Z             },
2026-06-16T09:36:12.4355150Z             {
2026-06-16T09:36:12.4355349Z               "path": "crates/spt-live/src/turn.rs",
2026-06-16T09:36:12.4355493Z               "line": 18
2026-06-16T09:36:12.4355626Z             },
2026-06-16T09:36:12.4355756Z             {
2026-06-16T09:36:12.4355960Z               "path": "crates/spt-live/src/turn.rs",
2026-06-16T09:36:12.4356104Z               "line": 71
2026-06-16T09:36:12.4356242Z             },
2026-06-16T09:36:12.4356362Z             {
2026-06-16T09:36:12.4356566Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.4356719Z               "line": 87
2026-06-16T09:36:12.4356847Z             }
2026-06-16T09:36:12.4356974Z           ]
2026-06-16T09:36:12.4357103Z         },
2026-06-16T09:36:12.4357239Z         "int": {
2026-06-16T09:36:12.4357398Z           "complete": false,
2026-06-16T09:36:12.4357534Z           "evidence": []
2026-06-16T09:36:12.4357669Z         },
2026-06-16T09:36:12.4357789Z         "unit": {
2026-06-16T09:36:12.4357950Z           "complete": true,
2026-06-16T09:36:12.4358083Z           "evidence": [
2026-06-16T09:36:12.4358216Z             {
2026-06-16T09:36:12.4358456Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4358604Z               "line": 289
2026-06-16T09:36:12.4358746Z             },
2026-06-16T09:36:12.4358875Z             {
2026-06-16T09:36:12.4359209Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4359357Z               "line": 314
2026-06-16T09:36:12.4359494Z             },
2026-06-16T09:36:12.4359637Z             {
2026-06-16T09:36:12.4359863Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4360012Z               "line": 350
2026-06-16T09:36:12.4360135Z             },
2026-06-16T09:36:12.4360260Z             {
2026-06-16T09:36:12.4360492Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4360626Z               "line": 418
2026-06-16T09:36:12.4360755Z             },
2026-06-16T09:36:12.4360875Z             {
2026-06-16T09:36:12.4361108Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4361251Z               "line": 429
2026-06-16T09:36:12.4361379Z             },
2026-06-16T09:36:12.4361505Z             {
2026-06-16T09:36:12.4361738Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4361995Z               "line": 460
2026-06-16T09:36:12.4362124Z             },
2026-06-16T09:36:12.4362261Z             {
2026-06-16T09:36:12.4362490Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.4362728Z               "line": 471
2026-06-16T09:36:12.4362853Z             },
2026-06-16T09:36:12.4362976Z             {
2026-06-16T09:36:12.4363215Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-16T09:36:12.4363357Z               "line": 77
2026-06-16T09:36:12.4363477Z             },
2026-06-16T09:36:12.4363601Z             {
2026-06-16T09:36:12.4363830Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-16T09:36:12.4363982Z               "line": 97
2026-06-16T09:36:12.4364107Z             },
2026-06-16T09:36:12.4364244Z             {
2026-06-16T09:36:12.4364459Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-16T09:36:12.4364591Z               "line": 112
2026-06-16T09:36:12.4364730Z             },
2026-06-16T09:36:12.4364866Z             {
2026-06-16T09:36:12.4365096Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-16T09:36:12.4365237Z               "line": 123
2026-06-16T09:36:12.4365371Z             },
2026-06-16T09:36:12.4365500Z             {
2026-06-16T09:36:12.4365730Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-16T09:36:12.4365876Z               "line": 130
2026-06-16T09:36:12.4366025Z             },
2026-06-16T09:36:12.4366153Z             {
2026-06-16T09:36:12.4366373Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-16T09:36:12.4366515Z               "line": 145
2026-06-16T09:36:12.4366640Z             },
2026-06-16T09:36:12.4366763Z             {
2026-06-16T09:36:12.4366965Z               "path": "crates/spt-live/src/turn.rs",
2026-06-16T09:36:12.4367111Z               "line": 115
2026-06-16T09:36:12.4367246Z             },
2026-06-16T09:36:12.4367379Z             {
2026-06-16T09:36:12.4367583Z               "path": "crates/spt-live/src/turn.rs",
2026-06-16T09:36:12.4367714Z               "line": 130
2026-06-16T09:36:12.4367842Z             },
2026-06-16T09:36:12.4367967Z             {
2026-06-16T09:36:12.4368176Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.4368334Z               "line": 428
2026-06-16T09:36:12.4368457Z             }
2026-06-16T09:36:12.4368587Z           ]
2026-06-16T09:36:12.4368706Z         }
2026-06-16T09:36:12.4368839Z       }
2026-06-16T09:36:12.4369049Z     },
2026-06-16T09:36:12.4369183Z     {
2026-06-16T09:36:12.4369373Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-16T09:36:12.4371329Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-16T09:36:12.4371501Z       "requiredStages": [
2026-06-16T09:36:12.4371624Z         "doc",
2026-06-16T09:36:12.4371769Z         "impl",
2026-06-16T09:36:12.4371897Z         "unit"
2026-06-16T09:36:12.4372021Z       ],
2026-06-16T09:36:12.4372150Z       "stages": {
2026-06-16T09:36:12.4372283Z         "doc": {
2026-06-16T09:36:12.4372442Z           "complete": true,
2026-06-16T09:36:12.4372607Z           "evidence": [
2026-06-16T09:36:12.4372738Z             {
2026-06-16T09:36:12.4372921Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4373050Z               "line": 367
2026-06-16T09:36:12.4373183Z             }
2026-06-16T09:36:12.4373312Z           ]
2026-06-16T09:36:12.4373436Z         },
2026-06-16T09:36:12.4373574Z         "impl": {
2026-06-16T09:36:12.4373732Z           "complete": true,
2026-06-16T09:36:12.4373879Z           "evidence": [
2026-06-16T09:36:12.4374009Z             {
2026-06-16T09:36:12.4374232Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4374371Z               "line": 199
2026-06-16T09:36:12.4374494Z             },
2026-06-16T09:36:12.4374733Z             {
2026-06-16T09:36:12.4374959Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4375109Z               "line": 303
2026-06-16T09:36:12.4375237Z             },
2026-06-16T09:36:12.4375370Z             {
2026-06-16T09:36:12.4375679Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4375826Z               "line": 515
2026-06-16T09:36:12.4375956Z             },
2026-06-16T09:36:12.4376088Z             {
2026-06-16T09:36:12.4376304Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4376446Z               "line": 530
2026-06-16T09:36:12.4376571Z             },
2026-06-16T09:36:12.4376694Z             {
2026-06-16T09:36:12.4376914Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4377061Z               "line": 1127
2026-06-16T09:36:12.4377187Z             },
2026-06-16T09:36:12.4377319Z             {
2026-06-16T09:36:12.4377539Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.4377686Z               "line": 443
2026-06-16T09:36:12.4377811Z             },
2026-06-16T09:36:12.4377934Z             {
2026-06-16T09:36:12.4378162Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.4378308Z               "line": 590
2026-06-16T09:36:12.4378431Z             },
2026-06-16T09:36:12.4378551Z             {
2026-06-16T09:36:12.4378785Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.4378914Z               "line": 731
2026-06-16T09:36:12.4379123Z             }
2026-06-16T09:36:12.4379257Z           ]
2026-06-16T09:36:12.4379380Z         },
2026-06-16T09:36:12.4379519Z         "int": {
2026-06-16T09:36:12.4379671Z           "complete": false,
2026-06-16T09:36:12.4379815Z           "evidence": []
2026-06-16T09:36:12.4379938Z         },
2026-06-16T09:36:12.4380073Z         "unit": {
2026-06-16T09:36:12.4380233Z           "complete": true,
2026-06-16T09:36:12.4380378Z           "evidence": [
2026-06-16T09:36:12.4380510Z             {
2026-06-16T09:36:12.4380743Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.4380893Z               "line": 1155
2026-06-16T09:36:12.4381013Z             },
2026-06-16T09:36:12.4381138Z             {
2026-06-16T09:36:12.4381409Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-16T09:36:12.4381546Z               "line": 30
2026-06-16T09:36:12.4381685Z             }
2026-06-16T09:36:12.4381804Z           ]
2026-06-16T09:36:12.4381937Z         }
2026-06-16T09:36:12.4382062Z       }
2026-06-16T09:36:12.4382194Z     },
2026-06-16T09:36:12.4382320Z     {
2026-06-16T09:36:12.4382533Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-16T09:36:12.4383120Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-16T09:36:12.4383278Z       "requiredStages": [
2026-06-16T09:36:12.4383419Z         "impl",
2026-06-16T09:36:12.4383543Z         "unit"
2026-06-16T09:36:12.4383673Z       ],
2026-06-16T09:36:12.4383820Z       "stages": {
2026-06-16T09:36:12.4383945Z         "doc": {
2026-06-16T09:36:12.4384101Z           "complete": true,
2026-06-16T09:36:12.4384240Z           "evidence": [
2026-06-16T09:36:12.4384364Z             {
2026-06-16T09:36:12.4384560Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4384707Z               "line": 139
2026-06-16T09:36:12.4384836Z             }
2026-06-16T09:36:12.4384959Z           ]
2026-06-16T09:36:12.4385083Z         },
2026-06-16T09:36:12.4385204Z         "impl": {
2026-06-16T09:36:12.4385364Z           "complete": true,
2026-06-16T09:36:12.4385504Z           "evidence": [
2026-06-16T09:36:12.4385631Z             {
2026-06-16T09:36:12.4385831Z               "path": "crates/spt-store/src/db.rs",
2026-06-16T09:36:12.4385967Z               "line": 29
2026-06-16T09:36:12.4386100Z             },
2026-06-16T09:36:12.4386220Z             {
2026-06-16T09:36:12.4386434Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.4386749Z               "line": 101
2026-06-16T09:36:12.4386883Z             },
2026-06-16T09:36:12.4387016Z             {
2026-06-16T09:36:12.4387240Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4387388Z               "line": 30
2026-06-16T09:36:12.4387631Z             },
2026-06-16T09:36:12.4387756Z             {
2026-06-16T09:36:12.4387970Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4388118Z               "line": 48
2026-06-16T09:36:12.4388246Z             }
2026-06-16T09:36:12.4388366Z           ]
2026-06-16T09:36:12.4388489Z         },
2026-06-16T09:36:12.4388616Z         "int": {
2026-06-16T09:36:12.4388774Z           "complete": false,
2026-06-16T09:36:12.4388919Z           "evidence": []
2026-06-16T09:36:12.4389130Z         },
2026-06-16T09:36:12.4389267Z         "unit": {
2026-06-16T09:36:12.4389435Z           "complete": true,
2026-06-16T09:36:12.4389582Z           "evidence": [
2026-06-16T09:36:12.4389702Z             {
2026-06-16T09:36:12.4389936Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4390079Z               "line": 162
2026-06-16T09:36:12.4390231Z             }
2026-06-16T09:36:12.4390365Z           ]
2026-06-16T09:36:12.4390489Z         }
2026-06-16T09:36:12.4390628Z       }
2026-06-16T09:36:12.4390746Z     },
2026-06-16T09:36:12.4390880Z     {
2026-06-16T09:36:12.4391084Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-16T09:36:12.4391882Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-16T09:36:12.4392050Z       "requiredStages": [
2026-06-16T09:36:12.4392182Z         "doc",
2026-06-16T09:36:12.4392312Z         "impl",
2026-06-16T09:36:12.4392435Z         "unit"
2026-06-16T09:36:12.4392560Z       ],
2026-06-16T09:36:12.4392688Z       "stages": {
2026-06-16T09:36:12.4392826Z         "doc": {
2026-06-16T09:36:12.4392974Z           "complete": true,
2026-06-16T09:36:12.4393113Z           "evidence": [
2026-06-16T09:36:12.4393256Z             {
2026-06-16T09:36:12.4393451Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4393599Z               "line": 151
2026-06-16T09:36:12.4393727Z             }
2026-06-16T09:36:12.4393853Z           ]
2026-06-16T09:36:12.4394003Z         },
2026-06-16T09:36:12.4394137Z         "impl": {
2026-06-16T09:36:12.4394294Z           "complete": true,
2026-06-16T09:36:12.4394427Z           "evidence": [
2026-06-16T09:36:12.4394566Z             {
2026-06-16T09:36:12.4394796Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4394948Z               "line": 22
2026-06-16T09:36:12.4395081Z             }
2026-06-16T09:36:12.4395195Z           ]
2026-06-16T09:36:12.4395319Z         },
2026-06-16T09:36:12.4395444Z         "int": {
2026-06-16T09:36:12.4395601Z           "complete": false,
2026-06-16T09:36:12.4395745Z           "evidence": []
2026-06-16T09:36:12.4395867Z         },
2026-06-16T09:36:12.4396011Z         "unit": {
2026-06-16T09:36:12.4396173Z           "complete": true,
2026-06-16T09:36:12.4396314Z           "evidence": [
2026-06-16T09:36:12.4396444Z             {
2026-06-16T09:36:12.4396689Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4396828Z               "line": 298
2026-06-16T09:36:12.4396970Z             }
2026-06-16T09:36:12.4397095Z           ]
2026-06-16T09:36:12.4397218Z         }
2026-06-16T09:36:12.4397348Z       }
2026-06-16T09:36:12.4397472Z     },
2026-06-16T09:36:12.4397599Z     {
2026-06-16T09:36:12.4397810Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-16T09:36:12.4398777Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-16T09:36:12.4399012Z       "requiredStages": [
2026-06-16T09:36:12.4399144Z         "impl",
2026-06-16T09:36:12.4399277Z         "unit"
2026-06-16T09:36:12.4399404Z       ],
2026-06-16T09:36:12.4399542Z       "stages": {
2026-06-16T09:36:12.4399804Z         "doc": {
2026-06-16T09:36:12.4399948Z           "complete": true,
2026-06-16T09:36:12.4400104Z           "evidence": [
2026-06-16T09:36:12.4400230Z             {
2026-06-16T09:36:12.4400429Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4400686Z               "line": 145
2026-06-16T09:36:12.4400810Z             }
2026-06-16T09:36:12.4400940Z           ]
2026-06-16T09:36:12.4401073Z         },
2026-06-16T09:36:12.4401212Z         "impl": {
2026-06-16T09:36:12.4401358Z           "complete": true,
2026-06-16T09:36:12.4401503Z           "evidence": [
2026-06-16T09:36:12.4401621Z             {
2026-06-16T09:36:12.4401877Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-16T09:36:12.4402023Z               "line": 160
2026-06-16T09:36:12.4402147Z             },
2026-06-16T09:36:12.4402272Z             {
2026-06-16T09:36:12.4402524Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4402671Z               "line": 200
2026-06-16T09:36:12.4402805Z             },
2026-06-16T09:36:12.4402939Z             {
2026-06-16T09:36:12.4403168Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4403310Z               "line": 298
2026-06-16T09:36:12.4403435Z             },
2026-06-16T09:36:12.4403573Z             {
2026-06-16T09:36:12.4403793Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-16T09:36:12.4403935Z               "line": 20
2026-06-16T09:36:12.4404060Z             }
2026-06-16T09:36:12.4404187Z           ]
2026-06-16T09:36:12.4404302Z         },
2026-06-16T09:36:12.4404442Z         "int": {
2026-06-16T09:36:12.4404587Z           "complete": false,
2026-06-16T09:36:12.4404735Z           "evidence": []
2026-06-16T09:36:12.4404859Z         },
2026-06-16T09:36:12.4404982Z         "unit": {
2026-06-16T09:36:12.4405136Z           "complete": true,
2026-06-16T09:36:12.4405283Z           "evidence": [
2026-06-16T09:36:12.4405422Z             {
2026-06-16T09:36:12.4405661Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4405813Z               "line": 885
2026-06-16T09:36:12.4405936Z             },
2026-06-16T09:36:12.4406071Z             {
2026-06-16T09:36:12.4406329Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-16T09:36:12.4406495Z               "line": 88
2026-06-16T09:36:12.4406634Z             },
2026-06-16T09:36:12.4406761Z             {
2026-06-16T09:36:12.4406994Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4407140Z               "line": 819
2026-06-16T09:36:12.4407263Z             },
2026-06-16T09:36:12.4407402Z             {
2026-06-16T09:36:12.4407617Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4407768Z               "line": 838
2026-06-16T09:36:12.4407898Z             },
2026-06-16T09:36:12.4408032Z             {
2026-06-16T09:36:12.4408261Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.4411119Z               "line": 279
2026-06-16T09:36:12.4411304Z             },
2026-06-16T09:36:12.4411439Z             {
2026-06-16T09:36:12.4411671Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-16T09:36:12.4411815Z               "line": 82
2026-06-16T09:36:12.4411943Z             },
2026-06-16T09:36:12.4412073Z             {
2026-06-16T09:36:12.4412294Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-16T09:36:12.4412447Z               "line": 99
2026-06-16T09:36:12.4412569Z             },
2026-06-16T09:36:12.4412697Z             {
2026-06-16T09:36:12.4412912Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-16T09:36:12.4413056Z               "line": 119
2026-06-16T09:36:12.4413189Z             }
2026-06-16T09:36:12.4413313Z           ]
2026-06-16T09:36:12.4413451Z         }
2026-06-16T09:36:12.4413574Z       }
2026-06-16T09:36:12.4413704Z     },
2026-06-16T09:36:12.4413828Z     {
2026-06-16T09:36:12.4414043Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-16T09:36:12.4417204Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-16T09:36:12.4417615Z       "requiredStages": [
2026-06-16T09:36:12.4417757Z         "doc",
2026-06-16T09:36:12.4417882Z         "impl",
2026-06-16T09:36:12.4418019Z         "unit"
2026-06-16T09:36:12.4418139Z       ],
2026-06-16T09:36:12.4418277Z       "stages": {
2026-06-16T09:36:12.4418414Z         "doc": {
2026-06-16T09:36:12.4418563Z           "complete": true,
2026-06-16T09:36:12.4418715Z           "evidence": [
2026-06-16T09:36:12.4418840Z             {
2026-06-16T09:36:12.4419121Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4419264Z               "line": 157
2026-06-16T09:36:12.4419422Z             }
2026-06-16T09:36:12.4419549Z           ]
2026-06-16T09:36:12.4419674Z         },
2026-06-16T09:36:12.4419813Z         "impl": {
2026-06-16T09:36:12.4419960Z           "complete": true,
2026-06-16T09:36:12.4420109Z           "evidence": [
2026-06-16T09:36:12.4420235Z             {
2026-06-16T09:36:12.4420501Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-16T09:36:12.4420647Z               "line": 137
2026-06-16T09:36:12.4420772Z             },
2026-06-16T09:36:12.4420905Z             {
2026-06-16T09:36:12.4421159Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4421301Z               "line": 512
2026-06-16T09:36:12.4421425Z             },
2026-06-16T09:36:12.4421553Z             {
2026-06-16T09:36:12.4421807Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4421940Z               "line": 519
2026-06-16T09:36:12.4422074Z             },
2026-06-16T09:36:12.4422202Z             {
2026-06-16T09:36:12.4422440Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4422595Z               "line": 227
2026-06-16T09:36:12.4422718Z             }
2026-06-16T09:36:12.4422849Z           ]
2026-06-16T09:36:12.4422974Z         },
2026-06-16T09:36:12.4423105Z         "int": {
2026-06-16T09:36:12.4423267Z           "complete": false,
2026-06-16T09:36:12.4423410Z           "evidence": []
2026-06-16T09:36:12.4423549Z         },
2026-06-16T09:36:12.4423673Z         "unit": {
2026-06-16T09:36:12.4423824Z           "complete": true,
2026-06-16T09:36:12.4423973Z           "evidence": [
2026-06-16T09:36:12.4424101Z             {
2026-06-16T09:36:12.4424350Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4424497Z               "line": 1515
2026-06-16T09:36:12.4424626Z             },
2026-06-16T09:36:12.4424755Z             {
2026-06-16T09:36:12.4425002Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4425142Z               "line": 1573
2026-06-16T09:36:12.4425279Z             },
2026-06-16T09:36:12.4425408Z             {
2026-06-16T09:36:12.4425641Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4425779Z               "line": 851
2026-06-16T09:36:12.4425913Z             }
2026-06-16T09:36:12.4426041Z           ]
2026-06-16T09:36:12.4426170Z         }
2026-06-16T09:36:12.4426318Z       }
2026-06-16T09:36:12.4426442Z     },
2026-06-16T09:36:12.4426576Z     {
2026-06-16T09:36:12.4426791Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-16T09:36:12.4427210Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-16T09:36:12.4427372Z       "requiredStages": [
2026-06-16T09:36:12.4427491Z         "impl",
2026-06-16T09:36:12.4427624Z         "unit"
2026-06-16T09:36:12.4427754Z       ],
2026-06-16T09:36:12.4427900Z       "stages": {
2026-06-16T09:36:12.4428028Z         "doc": {
2026-06-16T09:36:12.4428185Z           "complete": false,
2026-06-16T09:36:12.4428447Z           "evidence": []
2026-06-16T09:36:12.4428570Z         },
2026-06-16T09:36:12.4428709Z         "impl": {
2026-06-16T09:36:12.4428866Z           "complete": true,
2026-06-16T09:36:12.4429081Z           "evidence": [
2026-06-16T09:36:12.4429309Z             {
2026-06-16T09:36:12.4429524Z               "path": "crates/spt-store/src/proc.rs",
2026-06-16T09:36:12.4429667Z               "line": 15
2026-06-16T09:36:12.4429800Z             },
2026-06-16T09:36:12.4429919Z             {
2026-06-16T09:36:12.4430148Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4430293Z               "line": 55
2026-06-16T09:36:12.4430420Z             },
2026-06-16T09:36:12.4430549Z             {
2026-06-16T09:36:12.4430772Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4430915Z               "line": 66
2026-06-16T09:36:12.4431043Z             },
2026-06-16T09:36:12.4431174Z             {
2026-06-16T09:36:12.4431404Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4431556Z               "line": 115
2026-06-16T09:36:12.4431680Z             },
2026-06-16T09:36:12.4431818Z             {
2026-06-16T09:36:12.4432039Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4432190Z               "line": 138
2026-06-16T09:36:12.4432314Z             }
2026-06-16T09:36:12.4432448Z           ]
2026-06-16T09:36:12.4432563Z         },
2026-06-16T09:36:12.4432690Z         "int": {
2026-06-16T09:36:12.4432845Z           "complete": false,
2026-06-16T09:36:12.4432991Z           "evidence": []
2026-06-16T09:36:12.4433125Z         },
2026-06-16T09:36:12.4433245Z         "unit": {
2026-06-16T09:36:12.4433396Z           "complete": true,
2026-06-16T09:36:12.4433539Z           "evidence": [
2026-06-16T09:36:12.4433665Z             {
2026-06-16T09:36:12.4433875Z               "path": "crates/spt-store/src/proc.rs",
2026-06-16T09:36:12.4434022Z               "line": 149
2026-06-16T09:36:12.4434157Z             },
2026-06-16T09:36:12.4434281Z             {
2026-06-16T09:36:12.4434491Z               "path": "crates/spt-store/src/proc.rs",
2026-06-16T09:36:12.4434633Z               "line": 155
2026-06-16T09:36:12.4434758Z             },
2026-06-16T09:36:12.4434890Z             {
2026-06-16T09:36:12.4435101Z               "path": "crates/spt-store/src/proc.rs",
2026-06-16T09:36:12.4435253Z               "line": 169
2026-06-16T09:36:12.4435382Z             },
2026-06-16T09:36:12.4435506Z             {
2026-06-16T09:36:12.4435716Z               "path": "crates/spt-store/src/proc.rs",
2026-06-16T09:36:12.4435863Z               "line": 178
2026-06-16T09:36:12.4436002Z             },
2026-06-16T09:36:12.4436131Z             {
2026-06-16T09:36:12.4436353Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4436497Z               "line": 195
2026-06-16T09:36:12.4436629Z             },
2026-06-16T09:36:12.4436769Z             {
2026-06-16T09:36:12.4436988Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4437155Z               "line": 208
2026-06-16T09:36:12.4437288Z             },
2026-06-16T09:36:12.4437417Z             {
2026-06-16T09:36:12.4437656Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4437803Z               "line": 271
2026-06-16T09:36:12.4437942Z             },
2026-06-16T09:36:12.4438066Z             {
2026-06-16T09:36:12.4438295Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4438442Z               "line": 290
2026-06-16T09:36:12.4438574Z             },
2026-06-16T09:36:12.4438698Z             {
2026-06-16T09:36:12.4438920Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4439139Z               "line": 319
2026-06-16T09:36:12.4439274Z             }
2026-06-16T09:36:12.4439397Z           ]
2026-06-16T09:36:12.4439516Z         }
2026-06-16T09:36:12.4439641Z       }
2026-06-16T09:36:12.4439764Z     },
2026-06-16T09:36:12.4439884Z     {
2026-06-16T09:36:12.4440079Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-16T09:36:12.4440799Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-16T09:36:12.4440966Z       "requiredStages": [
2026-06-16T09:36:12.4441099Z         "impl",
2026-06-16T09:36:12.4441346Z         "unit",
2026-06-16T09:36:12.4441484Z         "int"
2026-06-16T09:36:12.4441607Z       ],
2026-06-16T09:36:12.4441744Z       "stages": {
2026-06-16T09:36:12.4441874Z         "doc": {
2026-06-16T09:36:12.4442035Z           "complete": false,
2026-06-16T09:36:12.4442179Z           "evidence": []
2026-06-16T09:36:12.4442312Z         },
2026-06-16T09:36:12.4442451Z         "impl": {
2026-06-16T09:36:12.4442594Z           "complete": true,
2026-06-16T09:36:12.4442736Z           "evidence": [
2026-06-16T09:36:12.4442861Z             {
2026-06-16T09:36:12.4443085Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4443232Z               "line": 447
2026-06-16T09:36:12.4443356Z             },
2026-06-16T09:36:12.4443491Z             {
2026-06-16T09:36:12.4443705Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4443843Z               "line": 867
2026-06-16T09:36:12.4443975Z             },
2026-06-16T09:36:12.4444099Z             {
2026-06-16T09:36:12.4444315Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4444459Z               "line": 912
2026-06-16T09:36:12.4444597Z             },
2026-06-16T09:36:12.4444727Z             {
2026-06-16T09:36:12.4444935Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.4445089Z               "line": 937
2026-06-16T09:36:12.4445216Z             },
2026-06-16T09:36:12.4445337Z             {
2026-06-16T09:36:12.4445565Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.4445705Z               "line": 987
2026-06-16T09:36:12.4445837Z             },
2026-06-16T09:36:12.4445957Z             {
2026-06-16T09:36:12.4446180Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.4446334Z               "line": 1113
2026-06-16T09:36:12.4446451Z             },
2026-06-16T09:36:12.4446587Z             {
2026-06-16T09:36:12.4446814Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.4446966Z               "line": 1244
2026-06-16T09:36:12.4447095Z             },
2026-06-16T09:36:12.4447214Z             {
2026-06-16T09:36:12.4447442Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.4447587Z               "line": 1292
2026-06-16T09:36:12.4447715Z             },
2026-06-16T09:36:12.4447858Z             {
2026-06-16T09:36:12.4448077Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-16T09:36:12.4448226Z               "line": 46
2026-06-16T09:36:12.4448354Z             },
2026-06-16T09:36:12.4448477Z             {
2026-06-16T09:36:12.4448697Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-16T09:36:12.4448845Z               "line": 167
2026-06-16T09:36:12.4449068Z             },
2026-06-16T09:36:12.4449202Z             {
2026-06-16T09:36:12.4449404Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-16T09:36:12.4449547Z               "line": 132
2026-06-16T09:36:12.4449676Z             },
2026-06-16T09:36:12.4449814Z             {
2026-06-16T09:36:12.4450024Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4450172Z               "line": 137
2026-06-16T09:36:12.4450296Z             },
2026-06-16T09:36:12.4450420Z             {
2026-06-16T09:36:12.4450629Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4450773Z               "line": 183
2026-06-16T09:36:12.4450901Z             }
2026-06-16T09:36:12.4451020Z           ]
2026-06-16T09:36:12.4451136Z         },
2026-06-16T09:36:12.4451268Z         "int": {
2026-06-16T09:36:12.4451427Z           "complete": true,
2026-06-16T09:36:12.4451578Z           "evidence": [
2026-06-16T09:36:12.4451703Z             {
2026-06-16T09:36:12.4451954Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-16T09:36:12.4452209Z               "line": 27
2026-06-16T09:36:12.4452347Z             },
2026-06-16T09:36:12.4452463Z             {
2026-06-16T09:36:12.4452710Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-16T09:36:12.4452962Z               "line": 129
2026-06-16T09:36:12.4453097Z             },
2026-06-16T09:36:12.4453225Z             {
2026-06-16T09:36:12.4453454Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-16T09:36:12.4453597Z               "line": 200
2026-06-16T09:36:12.4453726Z             }
2026-06-16T09:36:12.4453854Z           ]
2026-06-16T09:36:12.4453980Z         },
2026-06-16T09:36:12.4454112Z         "unit": {
2026-06-16T09:36:12.4454260Z           "complete": true,
2026-06-16T09:36:12.4454408Z           "evidence": [
2026-06-16T09:36:12.4454535Z             {
2026-06-16T09:36:12.4454758Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-16T09:36:12.4454904Z               "line": 313
2026-06-16T09:36:12.4455034Z             },
2026-06-16T09:36:12.4455152Z             {
2026-06-16T09:36:12.4455377Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-16T09:36:12.4455524Z               "line": 345
2026-06-16T09:36:12.4455654Z             },
2026-06-16T09:36:12.4455791Z             {
2026-06-16T09:36:12.4456015Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-16T09:36:12.4456159Z               "line": 366
2026-06-16T09:36:12.4456293Z             },
2026-06-16T09:36:12.4456425Z             {
2026-06-16T09:36:12.4456654Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.4456803Z               "line": 508
2026-06-16T09:36:12.4456932Z             },
2026-06-16T09:36:12.4457050Z             {
2026-06-16T09:36:12.4457280Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-16T09:36:12.4457430Z               "line": 289
2026-06-16T09:36:12.4457555Z             },
2026-06-16T09:36:12.4457683Z             {
2026-06-16T09:36:12.4457908Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-16T09:36:12.4458055Z               "line": 230
2026-06-16T09:36:12.4458185Z             },
2026-06-16T09:36:12.4458308Z             {
2026-06-16T09:36:12.4458519Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4458670Z               "line": 526
2026-06-16T09:36:12.4458795Z             },
2026-06-16T09:36:12.4458918Z             {
2026-06-16T09:36:12.4459219Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.4459367Z               "line": 556
2026-06-16T09:36:12.4459496Z             }
2026-06-16T09:36:12.4459619Z           ]
2026-06-16T09:36:12.4459742Z         }
2026-06-16T09:36:12.4459869Z       }
2026-06-16T09:36:12.4459997Z     },
2026-06-16T09:36:12.4460117Z     {
2026-06-16T09:36:12.4460360Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-16T09:36:12.4464410Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-16T09:36:12.4464587Z       "requiredStages": [
2026-06-16T09:36:12.4464729Z         "doc",
2026-06-16T09:36:12.4464854Z         "impl",
2026-06-16T09:36:12.4464996Z         "unit"
2026-06-16T09:36:12.4465124Z       ],
2026-06-16T09:36:12.4465252Z       "stages": {
2026-06-16T09:36:12.4465383Z         "doc": {
2026-06-16T09:36:12.4465531Z           "complete": true,
2026-06-16T09:36:12.4465675Z           "evidence": [
2026-06-16T09:36:12.4465798Z             {
2026-06-16T09:36:12.4465999Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4466147Z               "line": 307
2026-06-16T09:36:12.4466418Z             }
2026-06-16T09:36:12.4466552Z           ]
2026-06-16T09:36:12.4466671Z         },
2026-06-16T09:36:12.4466801Z         "impl": {
2026-06-16T09:36:12.4466958Z           "complete": true,
2026-06-16T09:36:12.4467229Z           "evidence": [
2026-06-16T09:36:12.4467368Z             {
2026-06-16T09:36:12.4467644Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-16T09:36:12.4467793Z               "line": 33
2026-06-16T09:36:12.4467919Z             },
2026-06-16T09:36:12.4468053Z             {
2026-06-16T09:36:12.4468320Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-16T09:36:12.4468468Z               "line": 39
2026-06-16T09:36:12.4468596Z             }
2026-06-16T09:36:12.4468721Z           ]
2026-06-16T09:36:12.4468845Z         },
2026-06-16T09:36:12.4469041Z         "int": {
2026-06-16T09:36:12.4469206Z           "complete": false,
2026-06-16T09:36:12.4469346Z           "evidence": []
2026-06-16T09:36:12.4469483Z         },
2026-06-16T09:36:12.4469617Z         "unit": {
2026-06-16T09:36:12.4469774Z           "complete": true,
2026-06-16T09:36:12.4469922Z           "evidence": [
2026-06-16T09:36:12.4470043Z             {
2026-06-16T09:36:12.4470307Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-16T09:36:12.4470462Z               "line": 95
2026-06-16T09:36:12.4470601Z             }
2026-06-16T09:36:12.4470735Z           ]
2026-06-16T09:36:12.4470867Z         }
2026-06-16T09:36:12.4471002Z       }
2026-06-16T09:36:12.4471134Z     },
2026-06-16T09:36:12.4471254Z     {
2026-06-16T09:36:12.4471444Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-16T09:36:12.4476717Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-16T09:36:12.4476925Z       "requiredStages": [
2026-06-16T09:36:12.4477060Z         "unit"
2026-06-16T09:36:12.4477184Z       ],
2026-06-16T09:36:12.4477327Z       "stages": {
2026-06-16T09:36:12.4477456Z         "doc": {
2026-06-16T09:36:12.4477608Z           "complete": false,
2026-06-16T09:36:12.4477756Z           "evidence": []
2026-06-16T09:36:12.4477884Z         },
2026-06-16T09:36:12.4478019Z         "impl": {
2026-06-16T09:36:12.4478171Z           "complete": true,
2026-06-16T09:36:12.4478320Z           "evidence": [
2026-06-16T09:36:12.4478442Z             {
2026-06-16T09:36:12.4478656Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4478804Z               "line": 3206
2026-06-16T09:36:12.4478933Z             },
2026-06-16T09:36:12.4479151Z             {
2026-06-16T09:36:12.4479339Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4479519Z               "line": 3258
2026-06-16T09:36:12.4479639Z             },
2026-06-16T09:36:12.4479776Z             {
2026-06-16T09:36:12.4479954Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4480105Z               "line": 3303
2026-06-16T09:36:12.4480240Z             },
2026-06-16T09:36:12.4480358Z             {
2026-06-16T09:36:12.4480569Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4480706Z               "line": 92
2026-06-16T09:36:12.4480853Z             },
2026-06-16T09:36:12.4480985Z             {
2026-06-16T09:36:12.4481199Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4481342Z               "line": 148
2026-06-16T09:36:12.4481590Z             },
2026-06-16T09:36:12.4481723Z             {
2026-06-16T09:36:12.4481919Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4482066Z               "line": 192
2026-06-16T09:36:12.4482196Z             },
2026-06-16T09:36:12.4482424Z             {
2026-06-16T09:36:12.4482639Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4482783Z               "line": 200
2026-06-16T09:36:12.4482920Z             },
2026-06-16T09:36:12.4483039Z             {
2026-06-16T09:36:12.4483239Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4483384Z               "line": 211
2026-06-16T09:36:12.4483516Z             },
2026-06-16T09:36:12.4483639Z             {
2026-06-16T09:36:12.4483848Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4483989Z               "line": 265
2026-06-16T09:36:12.4484119Z             },
2026-06-16T09:36:12.4484252Z             {
2026-06-16T09:36:12.4484453Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4484605Z               "line": 279
2026-06-16T09:36:12.4484739Z             }
2026-06-16T09:36:12.4484862Z           ]
2026-06-16T09:36:12.4484996Z         },
2026-06-16T09:36:12.4485129Z         "int": {
2026-06-16T09:36:12.4485296Z           "complete": false,
2026-06-16T09:36:12.4485439Z           "evidence": []
2026-06-16T09:36:12.4485573Z         },
2026-06-16T09:36:12.4485703Z         "unit": {
2026-06-16T09:36:12.4485854Z           "complete": true,
2026-06-16T09:36:12.4486008Z           "evidence": [
2026-06-16T09:36:12.4486135Z             {
2026-06-16T09:36:12.4486344Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4486476Z               "line": 419
2026-06-16T09:36:12.4486604Z             },
2026-06-16T09:36:12.4486734Z             {
2026-06-16T09:36:12.4486933Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4487077Z               "line": 470
2026-06-16T09:36:12.4487205Z             },
2026-06-16T09:36:12.4487339Z             {
2026-06-16T09:36:12.4487534Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4487673Z               "line": 499
2026-06-16T09:36:12.4487815Z             },
2026-06-16T09:36:12.4487935Z             {
2026-06-16T09:36:12.4488144Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4488288Z               "line": 526
2026-06-16T09:36:12.4488426Z             }
2026-06-16T09:36:12.4488556Z           ]
2026-06-16T09:36:12.4488692Z         }
2026-06-16T09:36:12.4488813Z       }
2026-06-16T09:36:12.4489016Z     },
2026-06-16T09:36:12.4489144Z     {
2026-06-16T09:36:12.4489350Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-16T09:36:12.4489750Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-16T09:36:12.4489913Z       "requiredStages": [
2026-06-16T09:36:12.4490050Z         "impl",
2026-06-16T09:36:12.4490190Z         "unit"
2026-06-16T09:36:12.4490323Z       ],
2026-06-16T09:36:12.4490452Z       "stages": {
2026-06-16T09:36:12.4490584Z         "doc": {
2026-06-16T09:36:12.4490742Z           "complete": false,
2026-06-16T09:36:12.4490886Z           "evidence": []
2026-06-16T09:36:12.4491008Z         },
2026-06-16T09:36:12.4491153Z         "impl": {
2026-06-16T09:36:12.4491313Z           "complete": true,
2026-06-16T09:36:12.4491456Z           "evidence": [
2026-06-16T09:36:12.4491578Z             {
2026-06-16T09:36:12.4491831Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4491973Z               "line": 62
2026-06-16T09:36:12.4492103Z             },
2026-06-16T09:36:12.4492231Z             {
2026-06-16T09:36:12.4492470Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4492612Z               "line": 71
2026-06-16T09:36:12.4492747Z             },
2026-06-16T09:36:12.4492875Z             {
2026-06-16T09:36:12.4493113Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4493261Z               "line": 80
2026-06-16T09:36:12.4493533Z             },
2026-06-16T09:36:12.4493658Z             {
2026-06-16T09:36:12.4493905Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4494049Z               "line": 88
2026-06-16T09:36:12.4494180Z             },
2026-06-16T09:36:12.4494399Z             {
2026-06-16T09:36:12.4494616Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4494765Z               "line": 33
2026-06-16T09:36:12.4494893Z             },
2026-06-16T09:36:12.4495018Z             {
2026-06-16T09:36:12.4495227Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4495375Z               "line": 65
2026-06-16T09:36:12.4495513Z             },
2026-06-16T09:36:12.4495633Z             {
2026-06-16T09:36:12.4495846Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4495985Z               "line": 74
2026-06-16T09:36:12.4496118Z             },
2026-06-16T09:36:12.4496244Z             {
2026-06-16T09:36:12.4496457Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4496606Z               "line": 93
2026-06-16T09:36:12.4496728Z             },
2026-06-16T09:36:12.4496856Z             {
2026-06-16T09:36:12.4497069Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4497226Z               "line": 102
2026-06-16T09:36:12.4497355Z             },
2026-06-16T09:36:12.4497484Z             {
2026-06-16T09:36:12.4497688Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4497833Z               "line": 111
2026-06-16T09:36:12.4497970Z             },
2026-06-16T09:36:12.4498094Z             {
2026-06-16T09:36:12.4498294Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4498438Z               "line": 122
2026-06-16T09:36:12.4498576Z             },
2026-06-16T09:36:12.4498704Z             {
2026-06-16T09:36:12.4498909Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4499139Z               "line": 140
2026-06-16T09:36:12.4499262Z             },
2026-06-16T09:36:12.4499402Z             {
2026-06-16T09:36:12.4499609Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4499762Z               "line": 149
2026-06-16T09:36:12.4499896Z             },
2026-06-16T09:36:12.4500029Z             {
2026-06-16T09:36:12.4500234Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4500378Z               "line": 158
2026-06-16T09:36:12.4500516Z             },
2026-06-16T09:36:12.4500634Z             {
2026-06-16T09:36:12.4500849Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4500997Z               "line": 169
2026-06-16T09:36:12.4501131Z             },
2026-06-16T09:36:12.4501268Z             {
2026-06-16T09:36:12.4501469Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4501612Z               "line": 177
2026-06-16T09:36:12.4501751Z             },
2026-06-16T09:36:12.4501888Z             {
2026-06-16T09:36:12.4502096Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4502238Z               "line": 186
2026-06-16T09:36:12.4502372Z             },
2026-06-16T09:36:12.4502504Z             {
2026-06-16T09:36:12.4502715Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4502853Z               "line": 195
2026-06-16T09:36:12.4502983Z             },
2026-06-16T09:36:12.4503106Z             {
2026-06-16T09:36:12.4503317Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4503454Z               "line": 204
2026-06-16T09:36:12.4503584Z             },
2026-06-16T09:36:12.4503721Z             {
2026-06-16T09:36:12.4503917Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4504054Z               "line": 216
2026-06-16T09:36:12.4504179Z             },
2026-06-16T09:36:12.4504313Z             {
2026-06-16T09:36:12.4504528Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4504674Z               "line": 223
2026-06-16T09:36:12.4504811Z             },
2026-06-16T09:36:12.4505067Z             {
2026-06-16T09:36:12.4505263Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4505410Z               "line": 232
2026-06-16T09:36:12.4505540Z             },
2026-06-16T09:36:12.4505663Z             {
2026-06-16T09:36:12.4505974Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4506126Z               "line": 239
2026-06-16T09:36:12.4506254Z             },
2026-06-16T09:36:12.4506378Z             {
2026-06-16T09:36:12.4506593Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4506736Z               "line": 306
2026-06-16T09:36:12.4506874Z             },
2026-06-16T09:36:12.4507003Z             {
2026-06-16T09:36:12.4507217Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4507364Z               "line": 318
2026-06-16T09:36:12.4507493Z             },
2026-06-16T09:36:12.4507620Z             {
2026-06-16T09:36:12.4507825Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4507972Z               "line": 405
2026-06-16T09:36:12.4508102Z             }
2026-06-16T09:36:12.4508234Z           ]
2026-06-16T09:36:12.4508359Z         },
2026-06-16T09:36:12.4508492Z         "int": {
2026-06-16T09:36:12.4508659Z           "complete": false,
2026-06-16T09:36:12.4508807Z           "evidence": []
2026-06-16T09:36:12.4508936Z         },
2026-06-16T09:36:12.4509165Z         "unit": {
2026-06-16T09:36:12.4509322Z           "complete": true,
2026-06-16T09:36:12.4509465Z           "evidence": [
2026-06-16T09:36:12.4509589Z             {
2026-06-16T09:36:12.4509803Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4509943Z               "line": 487
2026-06-16T09:36:12.4510080Z             },
2026-06-16T09:36:12.4510202Z             {
2026-06-16T09:36:12.4510414Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4510555Z               "line": 528
2026-06-16T09:36:12.4510690Z             },
2026-06-16T09:36:12.4510823Z             {
2026-06-16T09:36:12.4511028Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4511184Z               "line": 541
2026-06-16T09:36:12.4511305Z             },
2026-06-16T09:36:12.4511443Z             {
2026-06-16T09:36:12.4511667Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4511810Z               "line": 627
2026-06-16T09:36:12.4511939Z             }
2026-06-16T09:36:12.4512071Z           ]
2026-06-16T09:36:12.4512201Z         }
2026-06-16T09:36:12.4512325Z       }
2026-06-16T09:36:12.4512448Z     },
2026-06-16T09:36:12.4512572Z     {
2026-06-16T09:36:12.4512760Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-16T09:36:12.4513180Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-16T09:36:12.4513332Z       "requiredStages": [
2026-06-16T09:36:12.4513475Z         "impl",
2026-06-16T09:36:12.4513600Z         "unit"
2026-06-16T09:36:12.4513718Z       ],
2026-06-16T09:36:12.4513857Z       "stages": {
2026-06-16T09:36:12.4514005Z         "doc": {
2026-06-16T09:36:12.4514167Z           "complete": false,
2026-06-16T09:36:12.4514315Z           "evidence": []
2026-06-16T09:36:12.4514454Z         },
2026-06-16T09:36:12.4514591Z         "impl": {
2026-06-16T09:36:12.4514754Z           "complete": true,
2026-06-16T09:36:12.4514896Z           "evidence": [
2026-06-16T09:36:12.4515025Z             {
2026-06-16T09:36:12.4515230Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.4515376Z               "line": 152
2026-06-16T09:36:12.4515514Z             },
2026-06-16T09:36:12.4515636Z             {
2026-06-16T09:36:12.4515862Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.4516013Z               "line": 167
2026-06-16T09:36:12.4516133Z             }
2026-06-16T09:36:12.4516261Z           ]
2026-06-16T09:36:12.4516386Z         },
2026-06-16T09:36:12.4516525Z         "int": {
2026-06-16T09:36:12.4516681Z           "complete": false,
2026-06-16T09:36:12.4516828Z           "evidence": []
2026-06-16T09:36:12.4517082Z         },
2026-06-16T09:36:12.4517220Z         "unit": {
2026-06-16T09:36:12.4517378Z           "complete": true,
2026-06-16T09:36:12.4517525Z           "evidence": [
2026-06-16T09:36:12.4517664Z             {
2026-06-16T09:36:12.4517963Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.4518113Z               "line": 274
2026-06-16T09:36:12.4518250Z             },
2026-06-16T09:36:12.4518380Z             {
2026-06-16T09:36:12.4518604Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.4518753Z               "line": 832
2026-06-16T09:36:12.4518894Z             },
2026-06-16T09:36:12.4519100Z             {
2026-06-16T09:36:12.4519325Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.4519476Z               "line": 845
2026-06-16T09:36:12.4519597Z             }
2026-06-16T09:36:12.4519730Z           ]
2026-06-16T09:36:12.4519848Z         }
2026-06-16T09:36:12.4519982Z       }
2026-06-16T09:36:12.4520110Z     },
2026-06-16T09:36:12.4520236Z     {
2026-06-16T09:36:12.4520425Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-16T09:36:12.4520691Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-16T09:36:12.4520853Z       "requiredStages": [
2026-06-16T09:36:12.4520992Z         "impl",
2026-06-16T09:36:12.4521130Z         "unit"
2026-06-16T09:36:12.4521255Z       ],
2026-06-16T09:36:12.4521392Z       "stages": {
2026-06-16T09:36:12.4521536Z         "doc": {
2026-06-16T09:36:12.4521688Z           "complete": false,
2026-06-16T09:36:12.4521832Z           "evidence": []
2026-06-16T09:36:12.4521955Z         },
2026-06-16T09:36:12.4522093Z         "impl": {
2026-06-16T09:36:12.4522246Z           "complete": true,
2026-06-16T09:36:12.4522384Z           "evidence": [
2026-06-16T09:36:12.4522509Z             {
2026-06-16T09:36:12.4522732Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.4522871Z               "line": 116
2026-06-16T09:36:12.4522993Z             },
2026-06-16T09:36:12.4523137Z             {
2026-06-16T09:36:12.4523377Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.4523536Z               "line": 481
2026-06-16T09:36:12.4523668Z             }
2026-06-16T09:36:12.4523788Z           ]
2026-06-16T09:36:12.4523921Z         },
2026-06-16T09:36:12.4524040Z         "int": {
2026-06-16T09:36:12.4524203Z           "complete": false,
2026-06-16T09:36:12.4524345Z           "evidence": []
2026-06-16T09:36:12.4524484Z         },
2026-06-16T09:36:12.4524607Z         "unit": {
2026-06-16T09:36:12.4524761Z           "complete": true,
2026-06-16T09:36:12.4524908Z           "evidence": [
2026-06-16T09:36:12.4525033Z             {
2026-06-16T09:36:12.4527717Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.4527896Z               "line": 515
2026-06-16T09:36:12.4528028Z             }
2026-06-16T09:36:12.4528152Z           ]
2026-06-16T09:36:12.4528277Z         }
2026-06-16T09:36:12.4528403Z       }
2026-06-16T09:36:12.4528532Z     },
2026-06-16T09:36:12.4528665Z     {
2026-06-16T09:36:12.4528892Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-16T09:36:12.4529332Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-16T09:36:12.4529494Z       "requiredStages": [
2026-06-16T09:36:12.4529637Z         "impl",
2026-06-16T09:36:12.4529765Z         "unit"
2026-06-16T09:36:12.4529894Z       ],
2026-06-16T09:36:12.4530036Z       "stages": {
2026-06-16T09:36:12.4530167Z         "doc": {
2026-06-16T09:36:12.4530327Z           "complete": false,
2026-06-16T09:36:12.4530472Z           "evidence": []
2026-06-16T09:36:12.4530594Z         },
2026-06-16T09:36:12.4530728Z         "impl": {
2026-06-16T09:36:12.4530886Z           "complete": true,
2026-06-16T09:36:12.4531029Z           "evidence": [
2026-06-16T09:36:12.4531159Z             {
2026-06-16T09:36:12.4531395Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4531539Z               "line": 502
2026-06-16T09:36:12.4531824Z             },
2026-06-16T09:36:12.4531957Z             {
2026-06-16T09:36:12.4532172Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-16T09:36:12.4532305Z               "line": 28
2026-06-16T09:36:12.4532430Z             }
2026-06-16T09:36:12.4532663Z           ]
2026-06-16T09:36:12.4532797Z         },
2026-06-16T09:36:12.4532930Z         "int": {
2026-06-16T09:36:12.4533088Z           "complete": false,
2026-06-16T09:36:12.4533230Z           "evidence": []
2026-06-16T09:36:12.4533361Z         },
2026-06-16T09:36:12.4533497Z         "unit": {
2026-06-16T09:36:12.4533653Z           "complete": true,
2026-06-16T09:36:12.4533795Z           "evidence": [
2026-06-16T09:36:12.4533923Z             {
2026-06-16T09:36:12.4534152Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-16T09:36:12.4534300Z               "line": 229
2026-06-16T09:36:12.4534424Z             }
2026-06-16T09:36:12.4534547Z           ]
2026-06-16T09:36:12.4534677Z         }
2026-06-16T09:36:12.4534815Z       }
2026-06-16T09:36:12.4534950Z     },
2026-06-16T09:36:12.4535087Z     {
2026-06-16T09:36:12.4535283Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-16T09:36:12.4535559Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-16T09:36:12.4535725Z       "requiredStages": [],
2026-06-16T09:36:12.4535860Z       "stages": {
2026-06-16T09:36:12.4535998Z         "doc": {
2026-06-16T09:36:12.4536155Z           "complete": false,
2026-06-16T09:36:12.4536289Z           "evidence": []
2026-06-16T09:36:12.4536416Z         },
2026-06-16T09:36:12.4536559Z         "impl": {
2026-06-16T09:36:12.4536700Z           "complete": false,
2026-06-16T09:36:12.4536852Z           "evidence": []
2026-06-16T09:36:12.4536977Z         },
2026-06-16T09:36:12.4537109Z         "int": {
2026-06-16T09:36:12.4537273Z           "complete": false,
2026-06-16T09:36:12.4537409Z           "evidence": []
2026-06-16T09:36:12.4537540Z         },
2026-06-16T09:36:12.4537673Z         "unit": {
2026-06-16T09:36:12.4537836Z           "complete": false,
2026-06-16T09:36:12.4537978Z           "evidence": []
2026-06-16T09:36:12.4538102Z         }
2026-06-16T09:36:12.4538236Z       }
2026-06-16T09:36:12.4538359Z     },
2026-06-16T09:36:12.4538475Z     {
2026-06-16T09:36:12.4538679Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-16T09:36:12.4539054Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-16T09:36:12.4539215Z       "requiredStages": [
2026-06-16T09:36:12.4539338Z         "impl",
2026-06-16T09:36:12.4539477Z         "unit"
2026-06-16T09:36:12.4539600Z       ],
2026-06-16T09:36:12.4539744Z       "stages": {
2026-06-16T09:36:12.4539863Z         "doc": {
2026-06-16T09:36:12.4540024Z           "complete": false,
2026-06-16T09:36:12.4540177Z           "evidence": []
2026-06-16T09:36:12.4540296Z         },
2026-06-16T09:36:12.4540436Z         "impl": {
2026-06-16T09:36:12.4540582Z           "complete": true,
2026-06-16T09:36:12.4540731Z           "evidence": [
2026-06-16T09:36:12.4540855Z             {
2026-06-16T09:36:12.4541070Z               "path": "crates/spt-live/src/turn.rs",
2026-06-16T09:36:12.4541207Z               "line": 19
2026-06-16T09:36:12.4541337Z             },
2026-06-16T09:36:12.4541465Z             {
2026-06-16T09:36:12.4541685Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.4541835Z               "line": 347
2026-06-16T09:36:12.4541964Z             },
2026-06-16T09:36:12.4542094Z             {
2026-06-16T09:36:12.4542322Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.4542470Z               "line": 383
2026-06-16T09:36:12.4542594Z             },
2026-06-16T09:36:12.4542718Z             {
2026-06-16T09:36:12.4542942Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-16T09:36:12.4543090Z               "line": 15
2026-06-16T09:36:12.4543223Z             },
2026-06-16T09:36:12.4543352Z             {
2026-06-16T09:36:12.4543563Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-16T09:36:12.4543838Z               "line": 48
2026-06-16T09:36:12.4543973Z             },
2026-06-16T09:36:12.4544100Z             {
2026-06-16T09:36:12.4544313Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-16T09:36:12.4544459Z               "line": 119
2026-06-16T09:36:12.4544693Z             },
2026-06-16T09:36:12.4544817Z             {
2026-06-16T09:36:12.4545012Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4545161Z               "line": 3634
2026-06-16T09:36:12.4545285Z             }
2026-06-16T09:36:12.4545408Z           ]
2026-06-16T09:36:12.4545538Z         },
2026-06-16T09:36:12.4545666Z         "int": {
2026-06-16T09:36:12.4545819Z           "complete": false,
2026-06-16T09:36:12.4545971Z           "evidence": []
2026-06-16T09:36:12.4546100Z         },
2026-06-16T09:36:12.4546238Z         "unit": {
2026-06-16T09:36:12.4546381Z           "complete": true,
2026-06-16T09:36:12.4546520Z           "evidence": [
2026-06-16T09:36:12.4546658Z             {
2026-06-16T09:36:12.4546896Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.4547047Z               "line": 496
2026-06-16T09:36:12.4547171Z             },
2026-06-16T09:36:12.4547308Z             {
2026-06-16T09:36:12.4547518Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-16T09:36:12.4547669Z               "line": 165
2026-06-16T09:36:12.4547804Z             },
2026-06-16T09:36:12.4547922Z             {
2026-06-16T09:36:12.4548133Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-16T09:36:12.4548275Z               "line": 175
2026-06-16T09:36:12.4548410Z             }
2026-06-16T09:36:12.4548528Z           ]
2026-06-16T09:36:12.4548657Z         }
2026-06-16T09:36:12.4548786Z       }
2026-06-16T09:36:12.4548905Z     },
2026-06-16T09:36:12.4549101Z     {
2026-06-16T09:36:12.4549306Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-16T09:36:12.4551353Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-16T09:36:12.4551524Z       "requiredStages": [
2026-06-16T09:36:12.4551668Z         "impl",
2026-06-16T09:36:12.4551810Z         "unit"
2026-06-16T09:36:12.4551940Z       ],
2026-06-16T09:36:12.4552077Z       "stages": {
2026-06-16T09:36:12.4552203Z         "doc": {
2026-06-16T09:36:12.4552358Z           "complete": false,
2026-06-16T09:36:12.4552510Z           "evidence": []
2026-06-16T09:36:12.4552635Z         },
2026-06-16T09:36:12.4552772Z         "impl": {
2026-06-16T09:36:12.4552935Z           "complete": true,
2026-06-16T09:36:12.4553077Z           "evidence": [
2026-06-16T09:36:12.4553198Z             {
2026-06-16T09:36:12.4553411Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4553555Z               "line": 192
2026-06-16T09:36:12.4553679Z             },
2026-06-16T09:36:12.4553813Z             {
2026-06-16T09:36:12.4554045Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4554195Z               "line": 279
2026-06-16T09:36:12.4554317Z             }
2026-06-16T09:36:12.4554442Z           ]
2026-06-16T09:36:12.4554570Z         },
2026-06-16T09:36:12.4554698Z         "int": {
2026-06-16T09:36:12.4554860Z           "complete": false,
2026-06-16T09:36:12.4555006Z           "evidence": []
2026-06-16T09:36:12.4555130Z         },
2026-06-16T09:36:12.4555249Z         "unit": {
2026-06-16T09:36:12.4555411Z           "complete": true,
2026-06-16T09:36:12.4555559Z           "evidence": [
2026-06-16T09:36:12.4555686Z             {
2026-06-16T09:36:12.4555897Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4556031Z               "line": 470
2026-06-16T09:36:12.4556155Z             },
2026-06-16T09:36:12.4556283Z             {
2026-06-16T09:36:12.4556498Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.4556650Z               "line": 526
2026-06-16T09:36:12.4556889Z             }
2026-06-16T09:36:12.4557019Z           ]
2026-06-16T09:36:12.4557146Z         }
2026-06-16T09:36:12.4557270Z       }
2026-06-16T09:36:12.4557400Z     },
2026-06-16T09:36:12.4557522Z     {
2026-06-16T09:36:12.4557810Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-16T09:36:12.4558116Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-16T09:36:12.4558273Z       "requiredStages": [
2026-06-16T09:36:12.4558402Z         "impl",
2026-06-16T09:36:12.4558540Z         "unit"
2026-06-16T09:36:12.4558660Z       ],
2026-06-16T09:36:12.4558797Z       "stages": {
2026-06-16T09:36:12.4558936Z         "doc": {
2026-06-16T09:36:12.4559155Z           "complete": false,
2026-06-16T09:36:12.4559304Z           "evidence": []
2026-06-16T09:36:12.4559431Z         },
2026-06-16T09:36:12.4559561Z         "impl": {
2026-06-16T09:36:12.4559708Z           "complete": true,
2026-06-16T09:36:12.4559852Z           "evidence": [
2026-06-16T09:36:12.4559990Z             {
2026-06-16T09:36:12.4560212Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4560359Z               "line": 35
2026-06-16T09:36:12.4560482Z             }
2026-06-16T09:36:12.4560607Z           ]
2026-06-16T09:36:12.4560740Z         },
2026-06-16T09:36:12.4560874Z         "int": {
2026-06-16T09:36:12.4561031Z           "complete": false,
2026-06-16T09:36:12.4561179Z           "evidence": []
2026-06-16T09:36:12.4561312Z         },
2026-06-16T09:36:12.4561445Z         "unit": {
2026-06-16T09:36:12.4561598Z           "complete": true,
2026-06-16T09:36:12.4561736Z           "evidence": [
2026-06-16T09:36:12.4561871Z             {
2026-06-16T09:36:12.4562079Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-16T09:36:12.4562228Z               "line": 220
2026-06-16T09:36:12.4562356Z             }
2026-06-16T09:36:12.4562481Z           ]
2026-06-16T09:36:12.4562613Z         }
2026-06-16T09:36:12.4562738Z       }
2026-06-16T09:36:12.4562867Z     },
2026-06-16T09:36:12.4563003Z     {
2026-06-16T09:36:12.4563185Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-16T09:36:12.4563782Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-16T09:36:12.4563947Z       "requiredStages": [
2026-06-16T09:36:12.4564091Z         "impl",
2026-06-16T09:36:12.4564210Z         "unit"
2026-06-16T09:36:12.4564334Z       ],
2026-06-16T09:36:12.4564473Z       "stages": {
2026-06-16T09:36:12.4564591Z         "doc": {
2026-06-16T09:36:12.4564759Z           "complete": false,
2026-06-16T09:36:12.4564901Z           "evidence": []
2026-06-16T09:36:12.4565031Z         },
2026-06-16T09:36:12.4565158Z         "impl": {
2026-06-16T09:36:12.4565315Z           "complete": true,
2026-06-16T09:36:12.4565466Z           "evidence": [
2026-06-16T09:36:12.4565589Z             {
2026-06-16T09:36:12.4565837Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.4565985Z               "line": 405
2026-06-16T09:36:12.4566124Z             },
2026-06-16T09:36:12.4566256Z             {
2026-06-16T09:36:12.4566490Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.4566639Z               "line": 409
2026-06-16T09:36:12.4566763Z             },
2026-06-16T09:36:12.4566900Z             {
2026-06-16T09:36:12.4567129Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.4567278Z               "line": 156
2026-06-16T09:36:12.4567410Z             }
2026-06-16T09:36:12.4567530Z           ]
2026-06-16T09:36:12.4567655Z         },
2026-06-16T09:36:12.4567778Z         "int": {
2026-06-16T09:36:12.4567937Z           "complete": false,
2026-06-16T09:36:12.4568077Z           "evidence": []
2026-06-16T09:36:12.4568215Z         },
2026-06-16T09:36:12.4568347Z         "unit": {
2026-06-16T09:36:12.4568499Z           "complete": true,
2026-06-16T09:36:12.4568648Z           "evidence": [
2026-06-16T09:36:12.4568776Z             {
2026-06-16T09:36:12.4569086Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.4569343Z               "line": 812
2026-06-16T09:36:12.4569482Z             },
2026-06-16T09:36:12.4569605Z             {
2026-06-16T09:36:12.4569831Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.4570063Z               "line": 826
2026-06-16T09:36:12.4570189Z             },
2026-06-16T09:36:12.4570321Z             {
2026-06-16T09:36:12.4570546Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.4570687Z               "line": 845
2026-06-16T09:36:12.4570816Z             },
2026-06-16T09:36:12.4570937Z             {
2026-06-16T09:36:12.4571167Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.4571314Z               "line": 862
2026-06-16T09:36:12.4571439Z             },
2026-06-16T09:36:12.4571563Z             {
2026-06-16T09:36:12.4571805Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-16T09:36:12.4571953Z               "line": 441
2026-06-16T09:36:12.4572078Z             }
2026-06-16T09:36:12.4572206Z           ]
2026-06-16T09:36:12.4572330Z         }
2026-06-16T09:36:12.4572449Z       }
2026-06-16T09:36:12.4572578Z     },
2026-06-16T09:36:12.4572708Z     {
2026-06-16T09:36:12.4572897Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-16T09:36:12.4578139Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-16T09:36:12.4578324Z       "requiredStages": [
2026-06-16T09:36:12.4578459Z         "unit",
2026-06-16T09:36:12.4578581Z         "int"
2026-06-16T09:36:12.4578713Z       ],
2026-06-16T09:36:12.4578847Z       "stages": {
2026-06-16T09:36:12.4579074Z         "doc": {
2026-06-16T09:36:12.4579227Z           "complete": true,
2026-06-16T09:36:12.4579374Z           "evidence": [
2026-06-16T09:36:12.4579508Z             {
2026-06-16T09:36:12.4579698Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4579851Z               "line": 374
2026-06-16T09:36:12.4579984Z             }
2026-06-16T09:36:12.4580110Z           ]
2026-06-16T09:36:12.4580233Z         },
2026-06-16T09:36:12.4580371Z         "impl": {
2026-06-16T09:36:12.4580528Z           "complete": true,
2026-06-16T09:36:12.4580662Z           "evidence": [
2026-06-16T09:36:12.4580795Z             {
2026-06-16T09:36:12.4581011Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.4581157Z               "line": 97
2026-06-16T09:36:12.4581285Z             }
2026-06-16T09:36:12.4581414Z           ]
2026-06-16T09:36:12.4581531Z         },
2026-06-16T09:36:12.4581659Z         "int": {
2026-06-16T09:36:12.4581808Z           "complete": true,
2026-06-16T09:36:12.4581951Z           "evidence": [
2026-06-16T09:36:12.4582084Z             {
2026-06-16T09:36:12.4582309Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.4582461Z               "line": 918
2026-06-16T09:36:12.4582595Z             }
2026-06-16T09:36:12.4582714Z           ]
2026-06-16T09:36:12.4582847Z         },
2026-06-16T09:36:12.4582981Z         "unit": {
2026-06-16T09:36:12.4583138Z           "complete": true,
2026-06-16T09:36:12.4583287Z           "evidence": [
2026-06-16T09:36:12.4583419Z             {
2026-06-16T09:36:12.4583653Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.4583801Z               "line": 1459
2026-06-16T09:36:12.4583931Z             }
2026-06-16T09:36:12.4584052Z           ]
2026-06-16T09:36:12.4584296Z         }
2026-06-16T09:36:12.4584419Z       }
2026-06-16T09:36:12.4584544Z     },
2026-06-16T09:36:12.4584682Z     {
2026-06-16T09:36:12.4584869Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-16T09:36:12.4586733Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-16T09:36:12.4587019Z       "requiredStages": [
2026-06-16T09:36:12.4587159Z         "doc",
2026-06-16T09:36:12.4587296Z         "impl",
2026-06-16T09:36:12.4587421Z         "unit"
2026-06-16T09:36:12.4587554Z       ],
2026-06-16T09:36:12.4587697Z       "stages": {
2026-06-16T09:36:12.4587831Z         "doc": {
2026-06-16T09:36:12.4587972Z           "complete": true,
2026-06-16T09:36:12.4588117Z           "evidence": [
2026-06-16T09:36:12.4588250Z             {
2026-06-16T09:36:12.4588460Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-16T09:36:12.4588616Z               "line": 359
2026-06-16T09:36:12.4588742Z             }
2026-06-16T09:36:12.4588859Z           ]
2026-06-16T09:36:12.4589057Z         },
2026-06-16T09:36:12.4589226Z         "impl": {
2026-06-16T09:36:12.4589383Z           "complete": true,
2026-06-16T09:36:12.4589524Z           "evidence": [
2026-06-16T09:36:12.4589653Z             {
2026-06-16T09:36:12.4589877Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-16T09:36:12.4590016Z               "line": 87
2026-06-16T09:36:12.4590140Z             },
2026-06-16T09:36:12.4590273Z             {
2026-06-16T09:36:12.4590497Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-16T09:36:12.4590641Z               "line": 105
2026-06-16T09:36:12.4590774Z             },
2026-06-16T09:36:12.4590897Z             {
2026-06-16T09:36:12.4591140Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.4591285Z               "line": 55
2026-06-16T09:36:12.4591426Z             },
2026-06-16T09:36:12.4591562Z             {
2026-06-16T09:36:12.4591784Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.4591931Z               "line": 31
2026-06-16T09:36:12.4592057Z             },
2026-06-16T09:36:12.4592186Z             {
2026-06-16T09:36:12.4592410Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.4592559Z               "line": 446
2026-06-16T09:36:12.4592697Z             },
2026-06-16T09:36:12.4592815Z             {
2026-06-16T09:36:12.4593044Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.4593184Z               "line": 95
2026-06-16T09:36:12.4593321Z             },
2026-06-16T09:36:12.4593445Z             {
2026-06-16T09:36:12.4593688Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.4593833Z               "line": 29
2026-06-16T09:36:12.4593960Z             },
2026-06-16T09:36:12.4594094Z             {
2026-06-16T09:36:12.4594337Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.4594472Z               "line": 104
2026-06-16T09:36:12.4594608Z             },
2026-06-16T09:36:12.4594741Z             {
2026-06-16T09:36:12.4595003Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4595152Z               "line": 208
2026-06-16T09:36:12.4595289Z             },
2026-06-16T09:36:12.4595414Z             {
2026-06-16T09:36:12.4595647Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-16T09:36:12.4595786Z               "line": 28
2026-06-16T09:36:12.4595924Z             },
2026-06-16T09:36:12.4596058Z             {
2026-06-16T09:36:12.4596286Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-16T09:36:12.4596435Z               "line": 74
2026-06-16T09:36:12.4596562Z             },
2026-06-16T09:36:12.4596697Z             {
2026-06-16T09:36:12.4596938Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-16T09:36:12.4597189Z               "line": 32
2026-06-16T09:36:12.4597322Z             },
2026-06-16T09:36:12.4597442Z             {
2026-06-16T09:36:12.4597656Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4597799Z               "line": 40
2026-06-16T09:36:12.4598038Z             },
2026-06-16T09:36:12.4598156Z             {
2026-06-16T09:36:12.4598367Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4598514Z               "line": 184
2026-06-16T09:36:12.4598639Z             },
2026-06-16T09:36:12.4598772Z             {
2026-06-16T09:36:12.4599039Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-16T09:36:12.4599186Z               "line": 61
2026-06-16T09:36:12.4599321Z             },
2026-06-16T09:36:12.4599439Z             {
2026-06-16T09:36:12.4599641Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-16T09:36:12.4599786Z               "line": 131
2026-06-16T09:36:12.4599925Z             },
2026-06-16T09:36:12.4600047Z             {
2026-06-16T09:36:12.4600261Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-16T09:36:12.4600409Z               "line": 223
2026-06-16T09:36:12.4600538Z             },
2026-06-16T09:36:12.4600672Z             {
2026-06-16T09:36:12.4600881Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-16T09:36:12.4601034Z               "line": 37
2026-06-16T09:36:12.4601157Z             },
2026-06-16T09:36:12.4601286Z             {
2026-06-16T09:36:12.4601506Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-16T09:36:12.4601638Z               "line": 38
2026-06-16T09:36:12.4601763Z             },
2026-06-16T09:36:12.4601883Z             {
2026-06-16T09:36:12.4602117Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-16T09:36:12.4602259Z               "line": 36
2026-06-16T09:36:12.4602382Z             },
2026-06-16T09:36:12.4602515Z             {
2026-06-16T09:36:12.4602722Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-16T09:36:12.4602866Z               "line": 40
2026-06-16T09:36:12.4603004Z             }
2026-06-16T09:36:12.4603119Z           ]
2026-06-16T09:36:12.4603248Z         },
2026-06-16T09:36:12.4603385Z         "int": {
2026-06-16T09:36:12.4603548Z           "complete": false,
2026-06-16T09:36:12.4603695Z           "evidence": []
2026-06-16T09:36:12.4603815Z         },
2026-06-16T09:36:12.4603943Z         "unit": {
2026-06-16T09:36:12.4604112Z           "complete": true,
2026-06-16T09:36:12.4604248Z           "evidence": [
2026-06-16T09:36:12.4604383Z             {
2026-06-16T09:36:12.4604625Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.4604765Z               "line": 212
2026-06-16T09:36:12.4604902Z             },
2026-06-16T09:36:12.4605032Z             {
2026-06-16T09:36:12.4605281Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-16T09:36:12.4605426Z               "line": 136
2026-06-16T09:36:12.4605554Z             },
2026-06-16T09:36:12.4605688Z             {
2026-06-16T09:36:12.4605960Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-16T09:36:12.4606108Z               "line": 685
2026-06-16T09:36:12.4606231Z             },
2026-06-16T09:36:12.4606356Z             {
2026-06-16T09:36:12.4606579Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-16T09:36:12.4606727Z               "line": 224
2026-06-16T09:36:12.4606865Z             },
2026-06-16T09:36:12.4606995Z             {
2026-06-16T09:36:12.4607223Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-16T09:36:12.4607370Z               "line": 206
2026-06-16T09:36:12.4607503Z             },
2026-06-16T09:36:12.4607623Z             {
2026-06-16T09:36:12.4607848Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-16T09:36:12.4607993Z               "line": 112
2026-06-16T09:36:12.4608116Z             },
2026-06-16T09:36:12.4608245Z             {
2026-06-16T09:36:12.4608454Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-16T09:36:12.4608608Z               "line": 157
2026-06-16T09:36:12.4608856Z             },
2026-06-16T09:36:12.4609060Z             {
2026-06-16T09:36:12.4609294Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-16T09:36:12.4609427Z               "line": 215
2026-06-16T09:36:12.4609661Z             },
2026-06-16T09:36:12.4609781Z             {
2026-06-16T09:36:12.4610009Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-16T09:36:12.4610149Z               "line": 141
2026-06-16T09:36:12.4610276Z             },
2026-06-16T09:36:12.4610408Z             {
2026-06-16T09:36:12.4610621Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-16T09:36:12.4610769Z               "line": 162
2026-06-16T09:36:12.4610903Z             }
2026-06-16T09:36:12.4611035Z           ]
2026-06-16T09:36:12.4611160Z         }
2026-06-16T09:36:12.4611279Z       }
2026-06-16T09:36:12.4611413Z     },
2026-06-16T09:36:12.4611536Z     {
2026-06-16T09:36:12.4611747Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-16T09:36:12.4612076Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-16T09:36:12.4612232Z       "requiredStages": [
2026-06-16T09:36:12.4612372Z         "impl",
2026-06-16T09:36:12.4612500Z         "unit"
2026-06-16T09:36:12.4612628Z       ],
2026-06-16T09:36:12.4612763Z       "stages": {
2026-06-16T09:36:12.4612899Z         "doc": {
2026-06-16T09:36:12.4613061Z           "complete": false,
2026-06-16T09:36:12.4613202Z           "evidence": []
2026-06-16T09:36:12.4613340Z         },
2026-06-16T09:36:12.4613475Z         "impl": {
2026-06-16T09:36:12.4613621Z           "complete": true,
2026-06-16T09:36:12.4613769Z           "evidence": [
2026-06-16T09:36:12.4613897Z             {
2026-06-16T09:36:12.4614113Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.4614270Z               "line": 95
2026-06-16T09:36:12.4614403Z             },
2026-06-16T09:36:12.4614527Z             {
2026-06-16T09:36:12.4614746Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.4614894Z               "line": 94
2026-06-16T09:36:12.4615024Z             }
2026-06-16T09:36:12.4615156Z           ]
2026-06-16T09:36:12.4615282Z         },
2026-06-16T09:36:12.4615423Z         "int": {
2026-06-16T09:36:12.4615573Z           "complete": false,
2026-06-16T09:36:12.4615733Z           "evidence": []
2026-06-16T09:36:12.4615851Z         },
2026-06-16T09:36:12.4615996Z         "unit": {
2026-06-16T09:36:12.4616147Z           "complete": true,
2026-06-16T09:36:12.4616296Z           "evidence": [
2026-06-16T09:36:12.4616433Z             {
2026-06-16T09:36:12.4616644Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.4616791Z               "line": 250
2026-06-16T09:36:12.4616916Z             },
2026-06-16T09:36:12.4617053Z             {
2026-06-16T09:36:12.4617259Z               "path": "crates/spt-store/src/proc.rs",
2026-06-16T09:36:12.4617406Z               "line": 198
2026-06-16T09:36:12.4617532Z             },
2026-06-16T09:36:12.4617654Z             {
2026-06-16T09:36:12.4617866Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.4618016Z               "line": 487
2026-06-16T09:36:12.4618149Z             },
2026-06-16T09:36:12.4618276Z             {
2026-06-16T09:36:12.4618486Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.4618643Z               "line": 520
2026-06-16T09:36:12.4618767Z             }
2026-06-16T09:36:12.4618891Z           ]
2026-06-16T09:36:12.4619091Z         }
2026-06-16T09:36:12.4619211Z       }
2026-06-16T09:36:12.4619334Z     },
2026-06-16T09:36:12.4619464Z     {
2026-06-16T09:36:12.4619639Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-16T09:36:12.4620021Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-16T09:36:12.4620183Z       "requiredStages": [
2026-06-16T09:36:12.4620311Z         "impl",
2026-06-16T09:36:12.4620451Z         "unit"
2026-06-16T09:36:12.4620579Z       ],
2026-06-16T09:36:12.4620709Z       "stages": {
2026-06-16T09:36:12.4620840Z         "doc": {
2026-06-16T09:36:12.4621115Z           "complete": false,
2026-06-16T09:36:12.4621261Z           "evidence": []
2026-06-16T09:36:12.4621386Z         },
2026-06-16T09:36:12.4621534Z         "impl": {
2026-06-16T09:36:12.4621678Z           "complete": true,
2026-06-16T09:36:12.4621910Z           "evidence": [
2026-06-16T09:36:12.4622040Z             {
2026-06-16T09:36:12.4622254Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4622397Z               "line": 262
2026-06-16T09:36:12.4622525Z             },
2026-06-16T09:36:12.4622660Z             {
2026-06-16T09:36:12.4622864Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4623013Z               "line": 307
2026-06-16T09:36:12.4623160Z             },
2026-06-16T09:36:12.4623290Z             {
2026-06-16T09:36:12.4623502Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4623635Z               "line": 319
2026-06-16T09:36:12.4623776Z             }
2026-06-16T09:36:12.4623910Z           ]
2026-06-16T09:36:12.4624035Z         },
2026-06-16T09:36:12.4624172Z         "int": {
2026-06-16T09:36:12.4624325Z           "complete": false,
2026-06-16T09:36:12.4624482Z           "evidence": []
2026-06-16T09:36:12.4624606Z         },
2026-06-16T09:36:12.4624749Z         "unit": {
2026-06-16T09:36:12.4624897Z           "complete": true,
2026-06-16T09:36:12.4625040Z           "evidence": [
2026-06-16T09:36:12.4625174Z             {
2026-06-16T09:36:12.4625383Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4625537Z               "line": 455
2026-06-16T09:36:12.4625659Z             },
2026-06-16T09:36:12.4625794Z             {
2026-06-16T09:36:12.4626003Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.4626161Z               "line": 499
2026-06-16T09:36:12.4626289Z             }
2026-06-16T09:36:12.4626407Z           ]
2026-06-16T09:36:12.4626523Z         }
2026-06-16T09:36:12.4626655Z       }
2026-06-16T09:36:12.4626780Z     },
2026-06-16T09:36:12.4626909Z     {
2026-06-16T09:36:12.4627075Z       "id": "REQ-HOST-RUN-1",
2026-06-16T09:36:12.4632695Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-16T09:36:12.4632877Z       "requiredStages": [
2026-06-16T09:36:12.4633014Z         "impl",
2026-06-16T09:36:12.4633148Z         "unit",
2026-06-16T09:36:12.4633300Z         "int"
2026-06-16T09:36:12.4633429Z       ],
2026-06-16T09:36:12.4633568Z       "stages": {
2026-06-16T09:36:12.4633696Z         "doc": {
2026-06-16T09:36:12.4633855Z           "complete": false,
2026-06-16T09:36:12.4634028Z           "evidence": []
2026-06-16T09:36:12.4634148Z         },
2026-06-16T09:36:12.4634284Z         "impl": {
2026-06-16T09:36:12.4634436Z           "complete": true,
2026-06-16T09:36:12.4634581Z           "evidence": [
2026-06-16T09:36:12.4634708Z             {
2026-06-16T09:36:12.4634970Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-16T09:36:12.4635110Z               "line": 24
2026-06-16T09:36:12.4635247Z             },
2026-06-16T09:36:12.4635366Z             {
2026-06-16T09:36:12.4635619Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-16T09:36:12.4635772Z               "line": 63
2026-06-16T09:36:12.4635901Z             },
2026-06-16T09:36:12.4636034Z             {
2026-06-16T09:36:12.4636268Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-16T09:36:12.4636543Z               "line": 109
2026-06-16T09:36:12.4636664Z             },
2026-06-16T09:36:12.4636793Z             {
2026-06-16T09:36:12.4636986Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4637253Z               "line": 1209
2026-06-16T09:36:12.4637388Z             }
2026-06-16T09:36:12.4637511Z           ]
2026-06-16T09:36:12.4637640Z         },
2026-06-16T09:36:12.4637764Z         "int": {
2026-06-16T09:36:12.4637916Z           "complete": true,
2026-06-16T09:36:12.4638060Z           "evidence": [
2026-06-16T09:36:12.4638183Z             {
2026-06-16T09:36:12.4638417Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.4638560Z               "line": 279
2026-06-16T09:36:12.4638699Z             }
2026-06-16T09:36:12.4638827Z           ]
2026-06-16T09:36:12.4639038Z         },
2026-06-16T09:36:12.4639170Z         "unit": {
2026-06-16T09:36:12.4639317Z           "complete": true,
2026-06-16T09:36:12.4639467Z           "evidence": [
2026-06-16T09:36:12.4639591Z             {
2026-06-16T09:36:12.4639839Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-16T09:36:12.4639978Z               "line": 149
2026-06-16T09:36:12.4640120Z             },
2026-06-16T09:36:12.4640250Z             {
2026-06-16T09:36:12.4640487Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-16T09:36:12.4640636Z               "line": 169
2026-06-16T09:36:12.4640759Z             },
2026-06-16T09:36:12.4640899Z             {
2026-06-16T09:36:12.4641146Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-16T09:36:12.4641293Z               "line": 202
2026-06-16T09:36:12.4641432Z             }
2026-06-16T09:36:12.4641552Z           ]
2026-06-16T09:36:12.4641685Z         }
2026-06-16T09:36:12.4641805Z       }
2026-06-16T09:36:12.4641937Z     },
2026-06-16T09:36:12.4642064Z     {
2026-06-16T09:36:12.4642231Z       "id": "REQ-HOST-RUN-2",
2026-06-16T09:36:12.4646727Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-16T09:36:12.4646895Z       "requiredStages": [
2026-06-16T09:36:12.4649565Z         "impl",
2026-06-16T09:36:12.4649734Z         "unit",
2026-06-16T09:36:12.4649863Z         "int"
2026-06-16T09:36:12.4649994Z       ],
2026-06-16T09:36:12.4650128Z       "stages": {
2026-06-16T09:36:12.4650258Z         "doc": {
2026-06-16T09:36:12.4650433Z           "complete": false,
2026-06-16T09:36:12.4650576Z           "evidence": []
2026-06-16T09:36:12.4650709Z         },
2026-06-16T09:36:12.4650849Z         "impl": {
2026-06-16T09:36:12.4651009Z           "complete": true,
2026-06-16T09:36:12.4651149Z           "evidence": [
2026-06-16T09:36:12.4651291Z             {
2026-06-16T09:36:12.4651548Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-16T09:36:12.4651701Z               "line": 110
2026-06-16T09:36:12.4651835Z             },
2026-06-16T09:36:12.4651968Z             {
2026-06-16T09:36:12.4652173Z               "path": "crates/spt-term/src/pty.rs",
2026-06-16T09:36:12.4652322Z               "line": 113
2026-06-16T09:36:12.4652447Z             }
2026-06-16T09:36:12.4652563Z           ]
2026-06-16T09:36:12.4652697Z         },
2026-06-16T09:36:12.4652838Z         "int": {
2026-06-16T09:36:12.4652990Z           "complete": true,
2026-06-16T09:36:12.4653129Z           "evidence": [
2026-06-16T09:36:12.4653252Z             {
2026-06-16T09:36:12.4653644Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.4653792Z               "line": 454
2026-06-16T09:36:12.4653929Z             }
2026-06-16T09:36:12.4654058Z           ]
2026-06-16T09:36:12.4654288Z         },
2026-06-16T09:36:12.4654430Z         "unit": {
2026-06-16T09:36:12.4654583Z           "complete": true,
2026-06-16T09:36:12.4654735Z           "evidence": [
2026-06-16T09:36:12.4654859Z             {
2026-06-16T09:36:12.4655092Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-16T09:36:12.4655235Z               "line": 86
2026-06-16T09:36:12.4655362Z             }
2026-06-16T09:36:12.4655494Z           ]
2026-06-16T09:36:12.4655619Z         }
2026-06-16T09:36:12.4655747Z       }
2026-06-16T09:36:12.4655876Z     },
2026-06-16T09:36:12.4655991Z     {
2026-06-16T09:36:12.4656143Z       "id": "REQ-INFRA-1",
2026-06-16T09:36:12.4656530Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-16T09:36:12.4656706Z       "requiredStages": [],
2026-06-16T09:36:12.4656844Z       "stages": {
2026-06-16T09:36:12.4656968Z         "doc": {
2026-06-16T09:36:12.4657116Z           "complete": false,
2026-06-16T09:36:12.4657264Z           "evidence": []
2026-06-16T09:36:12.4657402Z         },
2026-06-16T09:36:12.4657537Z         "impl": {
2026-06-16T09:36:12.4657698Z           "complete": false,
2026-06-16T09:36:12.4657842Z           "evidence": []
2026-06-16T09:36:12.4657964Z         },
2026-06-16T09:36:12.4658092Z         "int": {
2026-06-16T09:36:12.4658246Z           "complete": false,
2026-06-16T09:36:12.4658402Z           "evidence": []
2026-06-16T09:36:12.4658522Z         },
2026-06-16T09:36:12.4658665Z         "unit": {
2026-06-16T09:36:12.4658808Z           "complete": false,
2026-06-16T09:36:12.4659046Z           "evidence": []
2026-06-16T09:36:12.4659166Z         }
2026-06-16T09:36:12.4659289Z       }
2026-06-16T09:36:12.4659419Z     },
2026-06-16T09:36:12.4659542Z     {
2026-06-16T09:36:12.4659705Z       "id": "REQ-INST-1",
2026-06-16T09:36:12.4660019Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-16T09:36:12.4660185Z       "requiredStages": [],
2026-06-16T09:36:12.4660323Z       "stages": {
2026-06-16T09:36:12.4660466Z         "doc": {
2026-06-16T09:36:12.4660625Z           "complete": false,
2026-06-16T09:36:12.4660765Z           "evidence": []
2026-06-16T09:36:12.4660888Z         },
2026-06-16T09:36:12.4661027Z         "impl": {
2026-06-16T09:36:12.4661189Z           "complete": false,
2026-06-16T09:36:12.4661327Z           "evidence": []
2026-06-16T09:36:12.4661460Z         },
2026-06-16T09:36:12.4661593Z         "int": {
2026-06-16T09:36:12.4661742Z           "complete": false,
2026-06-16T09:36:12.4661884Z           "evidence": []
2026-06-16T09:36:12.4662009Z         },
2026-06-16T09:36:12.4662147Z         "unit": {
2026-06-16T09:36:12.4662305Z           "complete": false,
2026-06-16T09:36:12.4662451Z           "evidence": []
2026-06-16T09:36:12.4662576Z         }
2026-06-16T09:36:12.4662706Z       }
2026-06-16T09:36:12.4662838Z     },
2026-06-16T09:36:12.4662954Z     {
2026-06-16T09:36:12.4663114Z       "id": "REQ-INST-10",
2026-06-16T09:36:12.4663570Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-16T09:36:12.4663732Z       "requiredStages": [
2026-06-16T09:36:12.4663874Z         "impl",
2026-06-16T09:36:12.4664003Z         "unit"
2026-06-16T09:36:12.4664131Z       ],
2026-06-16T09:36:12.4664266Z       "stages": {
2026-06-16T09:36:12.4664404Z         "doc": {
2026-06-16T09:36:12.4664552Z           "complete": false,
2026-06-16T09:36:12.4664695Z           "evidence": []
2026-06-16T09:36:12.4664818Z         },
2026-06-16T09:36:12.4664948Z         "impl": {
2026-06-16T09:36:12.4665085Z           "complete": true,
2026-06-16T09:36:12.4665230Z           "evidence": [
2026-06-16T09:36:12.4665362Z             {
2026-06-16T09:36:12.4665601Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4665857Z               "line": 616
2026-06-16T09:36:12.4665988Z             },
2026-06-16T09:36:12.4666112Z             {
2026-06-16T09:36:12.4666355Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4666499Z               "line": 693
2026-06-16T09:36:12.4666727Z             },
2026-06-16T09:36:12.4666847Z             {
2026-06-16T09:36:12.4667051Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-16T09:36:12.4667199Z               "line": 13
2026-06-16T09:36:12.4667328Z             },
2026-06-16T09:36:12.4667458Z             {
2026-06-16T09:36:12.4667662Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-16T09:36:12.4667810Z               "line": 67
2026-06-16T09:36:12.4667934Z             },
2026-06-16T09:36:12.4668068Z             {
2026-06-16T09:36:12.4668272Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.4668417Z               "line": 18
2026-06-16T09:36:12.4668553Z             },
2026-06-16T09:36:12.4668676Z             {
2026-06-16T09:36:12.4668886Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.4669087Z               "line": 444
2026-06-16T09:36:12.4669225Z             }
2026-06-16T09:36:12.4669345Z           ]
2026-06-16T09:36:12.4669464Z         },
2026-06-16T09:36:12.4669606Z         "int": {
2026-06-16T09:36:12.4669759Z           "complete": false,
2026-06-16T09:36:12.4669906Z           "evidence": []
2026-06-16T09:36:12.4670027Z         },
2026-06-16T09:36:12.4670155Z         "unit": {
2026-06-16T09:36:12.4670313Z           "complete": true,
2026-06-16T09:36:12.4670455Z           "evidence": [
2026-06-16T09:36:12.4670584Z             {
2026-06-16T09:36:12.4670812Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4670945Z               "line": 900
2026-06-16T09:36:12.4671072Z             },
2026-06-16T09:36:12.4671200Z             {
2026-06-16T09:36:12.4671425Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4671572Z               "line": 1233
2026-06-16T09:36:12.4671716Z             },
2026-06-16T09:36:12.4671839Z             {
2026-06-16T09:36:12.4672068Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4672212Z               "line": 1244
2026-06-16T09:36:12.4672349Z             },
2026-06-16T09:36:12.4672483Z             {
2026-06-16T09:36:12.4672707Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4672856Z               "line": 1260
2026-06-16T09:36:12.4672979Z             },
2026-06-16T09:36:12.4673102Z             {
2026-06-16T09:36:12.4673336Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4673480Z               "line": 1276
2026-06-16T09:36:12.4673613Z             },
2026-06-16T09:36:12.4673740Z             {
2026-06-16T09:36:12.4673968Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4674110Z               "line": 1298
2026-06-16T09:36:12.4674239Z             },
2026-06-16T09:36:12.4674367Z             {
2026-06-16T09:36:12.4674593Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4674744Z               "line": 1603
2026-06-16T09:36:12.4674874Z             },
2026-06-16T09:36:12.4675006Z             {
2026-06-16T09:36:12.4675207Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-16T09:36:12.4675355Z               "line": 130
2026-06-16T09:36:12.4675494Z             },
2026-06-16T09:36:12.4675626Z             {
2026-06-16T09:36:12.4675842Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-16T09:36:12.4675989Z               "line": 167
2026-06-16T09:36:12.4676114Z             },
2026-06-16T09:36:12.4676236Z             {
2026-06-16T09:36:12.4676446Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-16T09:36:12.4676596Z               "line": 175
2026-06-16T09:36:12.4676720Z             },
2026-06-16T09:36:12.4676854Z             {
2026-06-16T09:36:12.4677060Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-16T09:36:12.4677206Z               "line": 183
2026-06-16T09:36:12.4677450Z             },
2026-06-16T09:36:12.4677563Z             {
2026-06-16T09:36:12.4677759Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.4677902Z               "line": 896
2026-06-16T09:36:12.4678132Z             }
2026-06-16T09:36:12.4678260Z           ]
2026-06-16T09:36:12.4678385Z         }
2026-06-16T09:36:12.4678512Z       }
2026-06-16T09:36:12.4678648Z     },
2026-06-16T09:36:12.4678774Z     {
2026-06-16T09:36:12.4678924Z       "id": "REQ-INST-11",
2026-06-16T09:36:12.4679460Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-16T09:36:12.4679614Z       "requiredStages": [
2026-06-16T09:36:12.4679756Z         "impl",
2026-06-16T09:36:12.4679885Z         "unit"
2026-06-16T09:36:12.4680014Z       ],
2026-06-16T09:36:12.4680161Z       "stages": {
2026-06-16T09:36:12.4680286Z         "doc": {
2026-06-16T09:36:12.4680447Z           "complete": false,
2026-06-16T09:36:12.4680582Z           "evidence": []
2026-06-16T09:36:12.4680705Z         },
2026-06-16T09:36:12.4680844Z         "impl": {
2026-06-16T09:36:12.4680996Z           "complete": true,
2026-06-16T09:36:12.4681144Z           "evidence": [
2026-06-16T09:36:12.4681273Z             {
2026-06-16T09:36:12.4681510Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4681656Z               "line": 482
2026-06-16T09:36:12.4681779Z             },
2026-06-16T09:36:12.4681900Z             {
2026-06-16T09:36:12.4682147Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4682299Z               "line": 297
2026-06-16T09:36:12.4682433Z             },
2026-06-16T09:36:12.4682557Z             {
2026-06-16T09:36:12.4682772Z               "path": "crates/spt-store/src/rename.rs",
2026-06-16T09:36:12.4682924Z               "line": 59
2026-06-16T09:36:12.4683048Z             },
2026-06-16T09:36:12.4683177Z             {
2026-06-16T09:36:12.4683357Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4683506Z               "line": 4909
2026-06-16T09:36:12.4683639Z             },
2026-06-16T09:36:12.4683769Z             {
2026-06-16T09:36:12.4683959Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4684093Z               "line": 6474
2026-06-16T09:36:12.4684234Z             }
2026-06-16T09:36:12.4684358Z           ]
2026-06-16T09:36:12.4684486Z         },
2026-06-16T09:36:12.4684622Z         "int": {
2026-06-16T09:36:12.4684776Z           "complete": false,
2026-06-16T09:36:12.4684913Z           "evidence": []
2026-06-16T09:36:12.4685038Z         },
2026-06-16T09:36:12.4685181Z         "unit": {
2026-06-16T09:36:12.4685339Z           "complete": true,
2026-06-16T09:36:12.4685472Z           "evidence": [
2026-06-16T09:36:12.4685605Z             {
2026-06-16T09:36:12.4685839Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4685978Z               "line": 1403
2026-06-16T09:36:12.4686110Z             },
2026-06-16T09:36:12.4686239Z             {
2026-06-16T09:36:12.4686467Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4686613Z               "line": 1436
2026-06-16T09:36:12.4686745Z             },
2026-06-16T09:36:12.4686877Z             {
2026-06-16T09:36:12.4687127Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4687266Z               "line": 527
2026-06-16T09:36:12.4687400Z             },
2026-06-16T09:36:12.4687537Z             {
2026-06-16T09:36:12.4687743Z               "path": "crates/spt-store/src/rename.rs",
2026-06-16T09:36:12.4687891Z               "line": 160
2026-06-16T09:36:12.4688024Z             },
2026-06-16T09:36:12.4688147Z             {
2026-06-16T09:36:12.4688367Z               "path": "crates/spt-store/src/rename.rs",
2026-06-16T09:36:12.4688510Z               "line": 190
2026-06-16T09:36:12.4688649Z             },
2026-06-16T09:36:12.4688772Z             {
2026-06-16T09:36:12.4689068Z               "path": "crates/spt-store/src/rename.rs",
2026-06-16T09:36:12.4689354Z               "line": 225
2026-06-16T09:36:12.4689489Z             },
2026-06-16T09:36:12.4689621Z             {
2026-06-16T09:36:12.4689792Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4689936Z               "line": 6910
2026-06-16T09:36:12.4690164Z             }
2026-06-16T09:36:12.4690302Z           ]
2026-06-16T09:36:12.4690426Z         }
2026-06-16T09:36:12.4690550Z       }
2026-06-16T09:36:12.4690678Z     },
2026-06-16T09:36:12.4690804Z     {
2026-06-16T09:36:12.4690951Z       "id": "REQ-INST-12",
2026-06-16T09:36:12.4691604Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-16T09:36:12.4691772Z       "requiredStages": [
2026-06-16T09:36:12.4691899Z         "impl",
2026-06-16T09:36:12.4692032Z         "unit"
2026-06-16T09:36:12.4692164Z       ],
2026-06-16T09:36:12.4692301Z       "stages": {
2026-06-16T09:36:12.4692426Z         "doc": {
2026-06-16T09:36:12.4692569Z           "complete": false,
2026-06-16T09:36:12.4692731Z           "evidence": []
2026-06-16T09:36:12.4692850Z         },
2026-06-16T09:36:12.4692988Z         "impl": {
2026-06-16T09:36:12.4693141Z           "complete": true,
2026-06-16T09:36:12.4693283Z           "evidence": [
2026-06-16T09:36:12.4693413Z             {
2026-06-16T09:36:12.4693637Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4693784Z               "line": 534
2026-06-16T09:36:12.4693908Z             },
2026-06-16T09:36:12.4694038Z             {
2026-06-16T09:36:12.4694276Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4694418Z               "line": 627
2026-06-16T09:36:12.4694547Z             },
2026-06-16T09:36:12.4694672Z             {
2026-06-16T09:36:12.4694904Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4695046Z               "line": 707
2026-06-16T09:36:12.4695173Z             },
2026-06-16T09:36:12.4695307Z             {
2026-06-16T09:36:12.4695516Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4695661Z               "line": 96
2026-06-16T09:36:12.4695793Z             },
2026-06-16T09:36:12.4695918Z             {
2026-06-16T09:36:12.4696122Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4696275Z               "line": 269
2026-06-16T09:36:12.4696408Z             },
2026-06-16T09:36:12.4696528Z             {
2026-06-16T09:36:12.4696761Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-16T09:36:12.4696905Z               "line": 135
2026-06-16T09:36:12.4697037Z             }
2026-06-16T09:36:12.4697163Z           ]
2026-06-16T09:36:12.4697296Z         },
2026-06-16T09:36:12.4697423Z         "int": {
2026-06-16T09:36:12.4697575Z           "complete": false,
2026-06-16T09:36:12.4697716Z           "evidence": []
2026-06-16T09:36:12.4697840Z         },
2026-06-16T09:36:12.4697979Z         "unit": {
2026-06-16T09:36:12.4698131Z           "complete": true,
2026-06-16T09:36:12.4698285Z           "evidence": [
2026-06-16T09:36:12.4698422Z             {
2026-06-16T09:36:12.4698651Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4698799Z               "line": 1478
2026-06-16T09:36:12.4698927Z             },
2026-06-16T09:36:12.4699143Z             {
2026-06-16T09:36:12.4699366Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4699510Z               "line": 1501
2026-06-16T09:36:12.4699642Z             },
2026-06-16T09:36:12.4699763Z             {
2026-06-16T09:36:12.4699981Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4700126Z               "line": 1538
2026-06-16T09:36:12.4700252Z             },
2026-06-16T09:36:12.4700376Z             {
2026-06-16T09:36:12.4700590Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.4700734Z               "line": 457
2026-06-16T09:36:12.4700872Z             },
2026-06-16T09:36:12.4701011Z             {
2026-06-16T09:36:12.4701229Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-16T09:36:12.4701497Z               "line": 172
2026-06-16T09:36:12.4701635Z             },
2026-06-16T09:36:12.4701763Z             {
2026-06-16T09:36:12.4702008Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-16T09:36:12.4702245Z               "line": 193
2026-06-16T09:36:12.4702379Z             },
2026-06-16T09:36:12.4702502Z             {
2026-06-16T09:36:12.4702734Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-16T09:36:12.4702880Z               "line": 219
2026-06-16T09:36:12.4703005Z             }
2026-06-16T09:36:12.4703143Z           ]
2026-06-16T09:36:12.4703267Z         }
2026-06-16T09:36:12.4703387Z       }
2026-06-16T09:36:12.4703514Z     },
2026-06-16T09:36:12.4703639Z     {
2026-06-16T09:36:12.4703786Z       "id": "REQ-INST-13",
2026-06-16T09:36:12.4704177Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-16T09:36:12.4704344Z       "requiredStages": [
2026-06-16T09:36:12.4704482Z         "impl",
2026-06-16T09:36:12.4704612Z         "unit"
2026-06-16T09:36:12.4704740Z       ],
2026-06-16T09:36:12.4704880Z       "stages": {
2026-06-16T09:36:12.4705021Z         "doc": {
2026-06-16T09:36:12.4705175Z           "complete": false,
2026-06-16T09:36:12.4705336Z           "evidence": []
2026-06-16T09:36:12.4705459Z         },
2026-06-16T09:36:12.4705596Z         "impl": {
2026-06-16T09:36:12.4705747Z           "complete": true,
2026-06-16T09:36:12.4705896Z           "evidence": [
2026-06-16T09:36:12.4706029Z             {
2026-06-16T09:36:12.4706244Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4706395Z               "line": 100
2026-06-16T09:36:12.4706516Z             },
2026-06-16T09:36:12.4706639Z             {
2026-06-16T09:36:12.4706873Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-16T09:36:12.4707021Z               "line": 158
2026-06-16T09:36:12.4707160Z             }
2026-06-16T09:36:12.4707288Z           ]
2026-06-16T09:36:12.4707418Z         },
2026-06-16T09:36:12.4707545Z         "int": {
2026-06-16T09:36:12.4707699Z           "complete": false,
2026-06-16T09:36:12.4707842Z           "evidence": []
2026-06-16T09:36:12.4707978Z         },
2026-06-16T09:36:12.4708121Z         "unit": {
2026-06-16T09:36:12.4708276Z           "complete": true,
2026-06-16T09:36:12.4708424Z           "evidence": [
2026-06-16T09:36:12.4708548Z             {
2026-06-16T09:36:12.4708783Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-16T09:36:12.4708920Z               "line": 248
2026-06-16T09:36:12.4709126Z             },
2026-06-16T09:36:12.4709267Z             {
2026-06-16T09:36:12.4709492Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-16T09:36:12.4709640Z               "line": 266
2026-06-16T09:36:12.4709774Z             }
2026-06-16T09:36:12.4709907Z           ]
2026-06-16T09:36:12.4710027Z         }
2026-06-16T09:36:12.4710160Z       }
2026-06-16T09:36:12.4710295Z     },
2026-06-16T09:36:12.4710422Z     {
2026-06-16T09:36:12.4710571Z       "id": "REQ-INST-14",
2026-06-16T09:36:12.4711455Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-16T09:36:12.4711619Z       "requiredStages": [
2026-06-16T09:36:12.4711752Z         "doc",
2026-06-16T09:36:12.4711890Z         "impl",
2026-06-16T09:36:12.4712014Z         "unit"
2026-06-16T09:36:12.4712137Z       ],
2026-06-16T09:36:12.4712282Z       "stages": {
2026-06-16T09:36:12.4712405Z         "doc": {
2026-06-16T09:36:12.4712558Z           "complete": true,
2026-06-16T09:36:12.4712704Z           "evidence": [
2026-06-16T09:36:12.4712839Z             {
2026-06-16T09:36:12.4713005Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.4713137Z               "line": 533
2026-06-16T09:36:12.4713276Z             },
2026-06-16T09:36:12.4713398Z             {
2026-06-16T09:36:12.4713565Z               "path": "docs/STORAGE.md",
2026-06-16T09:36:12.4713707Z               "line": 49
2026-06-16T09:36:12.4713961Z             }
2026-06-16T09:36:12.4714093Z           ]
2026-06-16T09:36:12.4714214Z         },
2026-06-16T09:36:12.4714351Z         "impl": {
2026-06-16T09:36:12.4714500Z           "complete": true,
2026-06-16T09:36:12.4714747Z           "evidence": [
2026-06-16T09:36:12.4714876Z             {
2026-06-16T09:36:12.4715140Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4715291Z               "line": 404
2026-06-16T09:36:12.4715416Z             },
2026-06-16T09:36:12.4715548Z             {
2026-06-16T09:36:12.4715774Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4715924Z               "line": 346
2026-06-16T09:36:12.4716052Z             },
2026-06-16T09:36:12.4716184Z             {
2026-06-16T09:36:12.4716384Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4716527Z               "line": 235
2026-06-16T09:36:12.4716651Z             },
2026-06-16T09:36:12.4716785Z             {
2026-06-16T09:36:12.4716985Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4717124Z               "line": 1422
2026-06-16T09:36:12.4717257Z             }
2026-06-16T09:36:12.4717391Z           ]
2026-06-16T09:36:12.4717524Z         },
2026-06-16T09:36:12.4717663Z         "int": {
2026-06-16T09:36:12.4717819Z           "complete": false,
2026-06-16T09:36:12.4717963Z           "evidence": []
2026-06-16T09:36:12.4718091Z         },
2026-06-16T09:36:12.4718229Z         "unit": {
2026-06-16T09:36:12.4718392Z           "complete": true,
2026-06-16T09:36:12.4718538Z           "evidence": [
2026-06-16T09:36:12.4718676Z             {
2026-06-16T09:36:12.4718927Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4719170Z               "line": 1111
2026-06-16T09:36:12.4719295Z             },
2026-06-16T09:36:12.4719428Z             {
2026-06-16T09:36:12.4719667Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4719800Z               "line": 912
2026-06-16T09:36:12.4719939Z             },
2026-06-16T09:36:12.4720062Z             {
2026-06-16T09:36:12.4720296Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4720443Z               "line": 1173
2026-06-16T09:36:12.4720568Z             },
2026-06-16T09:36:12.4720705Z             {
2026-06-16T09:36:12.4720907Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4721039Z               "line": 533
2026-06-16T09:36:12.4721169Z             },
2026-06-16T09:36:12.4721297Z             {
2026-06-16T09:36:12.4721482Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4721635Z               "line": 6986
2026-06-16T09:36:12.4721768Z             }
2026-06-16T09:36:12.4721893Z           ]
2026-06-16T09:36:12.4722016Z         }
2026-06-16T09:36:12.4722146Z       }
2026-06-16T09:36:12.4722279Z     },
2026-06-16T09:36:12.4722392Z     {
2026-06-16T09:36:12.4722551Z       "id": "REQ-INST-15",
2026-06-16T09:36:12.4724344Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-16T09:36:12.4724517Z       "requiredStages": [
2026-06-16T09:36:12.4724658Z         "doc",
2026-06-16T09:36:12.4724793Z         "impl",
2026-06-16T09:36:12.4724925Z         "unit"
2026-06-16T09:36:12.4725056Z       ],
2026-06-16T09:36:12.4725193Z       "stages": {
2026-06-16T09:36:12.4725322Z         "doc": {
2026-06-16T09:36:12.4725469Z           "complete": true,
2026-06-16T09:36:12.4725622Z           "evidence": [
2026-06-16T09:36:12.4725751Z             {
2026-06-16T09:36:12.4726122Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-16T09:36:12.4726267Z               "line": 3
2026-06-16T09:36:12.4726400Z             }
2026-06-16T09:36:12.4726527Z           ]
2026-06-16T09:36:12.4726656Z         },
2026-06-16T09:36:12.4726911Z         "impl": {
2026-06-16T09:36:12.4727069Z           "complete": true,
2026-06-16T09:36:12.4727211Z           "evidence": [
2026-06-16T09:36:12.4727341Z             {
2026-06-16T09:36:12.4727594Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4727840Z               "line": 353
2026-06-16T09:36:12.4727970Z             },
2026-06-16T09:36:12.4728093Z             {
2026-06-16T09:36:12.4728299Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.4728446Z               "line": 60
2026-06-16T09:36:12.4728581Z             },
2026-06-16T09:36:12.4728713Z             {
2026-06-16T09:36:12.4729042Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4729189Z               "line": 368
2026-06-16T09:36:12.4729330Z             },
2026-06-16T09:36:12.4729448Z             {
2026-06-16T09:36:12.4729697Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4729846Z               "line": 417
2026-06-16T09:36:12.4729974Z             },
2026-06-16T09:36:12.4730107Z             {
2026-06-16T09:36:12.4730317Z               "path": "crates/spt-store/src/home.rs",
2026-06-16T09:36:12.4730461Z               "line": 19
2026-06-16T09:36:12.4730608Z             },
2026-06-16T09:36:12.4730736Z             {
2026-06-16T09:36:12.4730937Z               "path": "crates/spt-store/src/home.rs",
2026-06-16T09:36:12.4731080Z               "line": 70
2026-06-16T09:36:12.4731208Z             },
2026-06-16T09:36:12.4731333Z             {
2026-06-16T09:36:12.4731533Z               "path": "crates/spt-store/src/home.rs",
2026-06-16T09:36:12.4731681Z               "line": 96
2026-06-16T09:36:12.4731806Z             },
2026-06-16T09:36:12.4731928Z             {
2026-06-16T09:36:12.4732129Z               "path": "crates/spt-store/src/home.rs",
2026-06-16T09:36:12.4732275Z               "line": 121
2026-06-16T09:36:12.4732405Z             },
2026-06-16T09:36:12.4732529Z             {
2026-06-16T09:36:12.4732744Z               "path": "crates/spt-store/src/home.rs",
2026-06-16T09:36:12.4732886Z               "line": 172
2026-06-16T09:36:12.4733020Z             },
2026-06-16T09:36:12.4733153Z             {
2026-06-16T09:36:12.4733368Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.4733516Z               "line": 138
2026-06-16T09:36:12.4733650Z             },
2026-06-16T09:36:12.4733773Z             {
2026-06-16T09:36:12.4733959Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4734106Z               "line": 1314
2026-06-16T09:36:12.4734230Z             }
2026-06-16T09:36:12.4734368Z           ]
2026-06-16T09:36:12.4734499Z         },
2026-06-16T09:36:12.4734637Z         "int": {
2026-06-16T09:36:12.4734795Z           "complete": false,
2026-06-16T09:36:12.4734943Z           "evidence": []
2026-06-16T09:36:12.4735077Z         },
2026-06-16T09:36:12.4735214Z         "unit": {
2026-06-16T09:36:12.4735372Z           "complete": true,
2026-06-16T09:36:12.4735524Z           "evidence": [
2026-06-16T09:36:12.4735654Z             {
2026-06-16T09:36:12.4735907Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4736049Z               "line": 577
2026-06-16T09:36:12.4736182Z             },
2026-06-16T09:36:12.4736316Z             {
2026-06-16T09:36:12.4736560Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.4736692Z               "line": 638
2026-06-16T09:36:12.4736832Z             },
2026-06-16T09:36:12.4736965Z             {
2026-06-16T09:36:12.4737168Z               "path": "crates/spt-store/src/home.rs",
2026-06-16T09:36:12.4737315Z               "line": 213
2026-06-16T09:36:12.4737437Z             },
2026-06-16T09:36:12.4737562Z             {
2026-06-16T09:36:12.4737766Z               "path": "crates/spt-store/src/home.rs",
2026-06-16T09:36:12.4737915Z               "line": 249
2026-06-16T09:36:12.4738048Z             },
2026-06-16T09:36:12.4738173Z             {
2026-06-16T09:36:12.4738372Z               "path": "crates/spt-store/src/home.rs",
2026-06-16T09:36:12.4738649Z               "line": 262
2026-06-16T09:36:12.4738822Z             },
2026-06-16T09:36:12.4739064Z             {
2026-06-16T09:36:12.4739268Z               "path": "crates/spt-store/src/home.rs",
2026-06-16T09:36:12.4739512Z               "line": 338
2026-06-16T09:36:12.4739640Z             },
2026-06-16T09:36:12.4739778Z             {
2026-06-16T09:36:12.4739990Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.4740139Z               "line": 541
2026-06-16T09:36:12.4740266Z             },
2026-06-16T09:36:12.4740386Z             {
2026-06-16T09:36:12.4740571Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4740706Z               "line": 6923
2026-06-16T09:36:12.4740844Z             },
2026-06-16T09:36:12.4740972Z             {
2026-06-16T09:36:12.4741163Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4741316Z               "line": 8663
2026-06-16T09:36:12.4741445Z             }
2026-06-16T09:36:12.4741583Z           ]
2026-06-16T09:36:12.4741703Z         }
2026-06-16T09:36:12.4741826Z       }
2026-06-16T09:36:12.4741951Z     },
2026-06-16T09:36:12.4742083Z     {
2026-06-16T09:36:12.4742227Z       "id": "REQ-INST-2",
2026-06-16T09:36:12.4742464Z       "title": "Per-node files, synced Psyche mind",
2026-06-16T09:36:12.4742626Z       "requiredStages": [
2026-06-16T09:36:12.4742765Z         "impl",
2026-06-16T09:36:12.4742898Z         "unit"
2026-06-16T09:36:12.4743023Z       ],
2026-06-16T09:36:12.4743160Z       "stages": {
2026-06-16T09:36:12.4743294Z         "doc": {
2026-06-16T09:36:12.4743455Z           "complete": false,
2026-06-16T09:36:12.4743605Z           "evidence": []
2026-06-16T09:36:12.4743732Z         },
2026-06-16T09:36:12.4743871Z         "impl": {
2026-06-16T09:36:12.4744023Z           "complete": true,
2026-06-16T09:36:12.4744171Z           "evidence": [
2026-06-16T09:36:12.4744300Z             {
2026-06-16T09:36:12.4744539Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4744686Z               "line": 88
2026-06-16T09:36:12.4744813Z             },
2026-06-16T09:36:12.4744937Z             {
2026-06-16T09:36:12.4745149Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.4745289Z               "line": 28
2026-06-16T09:36:12.4745416Z             },
2026-06-16T09:36:12.4745541Z             {
2026-06-16T09:36:12.4745750Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.4745899Z               "line": 74
2026-06-16T09:36:12.4746032Z             },
2026-06-16T09:36:12.4746152Z             {
2026-06-16T09:36:12.4746361Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.4746500Z               "line": 96
2026-06-16T09:36:12.4746624Z             },
2026-06-16T09:36:12.4746757Z             {
2026-06-16T09:36:12.4746962Z               "path": "crates/spt-live/src/resume.rs",
2026-06-16T09:36:12.4747102Z               "line": 86
2026-06-16T09:36:12.4747229Z             },
2026-06-16T09:36:12.4747368Z             {
2026-06-16T09:36:12.4747586Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-16T09:36:12.4747719Z               "line": 118
2026-06-16T09:36:12.4747837Z             }
2026-06-16T09:36:12.4747969Z           ]
2026-06-16T09:36:12.4748108Z         },
2026-06-16T09:36:12.4748241Z         "int": {
2026-06-16T09:36:12.4748399Z           "complete": false,
2026-06-16T09:36:12.4748551Z           "evidence": []
2026-06-16T09:36:12.4748680Z         },
2026-06-16T09:36:12.4748818Z         "unit": {
2026-06-16T09:36:12.4749033Z           "complete": true,
2026-06-16T09:36:12.4749171Z           "evidence": [
2026-06-16T09:36:12.4749304Z             {
2026-06-16T09:36:12.4749514Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-16T09:36:12.4749663Z               "line": 250
2026-06-16T09:36:12.4749795Z             },
2026-06-16T09:36:12.4749915Z             {
2026-06-16T09:36:12.4750119Z               "path": "crates/spt-live/src/resume.rs",
2026-06-16T09:36:12.4750386Z               "line": 280
2026-06-16T09:36:12.4750512Z             }
2026-06-16T09:36:12.4750646Z           ]
2026-06-16T09:36:12.4750779Z         }
2026-06-16T09:36:12.4750903Z       }
2026-06-16T09:36:12.4751037Z     },
2026-06-16T09:36:12.4751261Z     {
2026-06-16T09:36:12.4751423Z       "id": "REQ-INST-3",
2026-06-16T09:36:12.4751718Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-16T09:36:12.4751881Z       "requiredStages": [
2026-06-16T09:36:12.4752019Z         "doc",
2026-06-16T09:36:12.4752157Z         "impl",
2026-06-16T09:36:12.4752292Z         "unit"
2026-06-16T09:36:12.4752410Z       ],
2026-06-16T09:36:12.4752554Z       "stages": {
2026-06-16T09:36:12.4752681Z         "doc": {
2026-06-16T09:36:12.4752836Z           "complete": true,
2026-06-16T09:36:12.4752977Z           "evidence": [
2026-06-16T09:36:12.4753100Z             {
2026-06-16T09:36:12.4755719Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-16T09:36:12.4755891Z               "line": 3
2026-06-16T09:36:12.4756034Z             }
2026-06-16T09:36:12.4756159Z           ]
2026-06-16T09:36:12.4756305Z         },
2026-06-16T09:36:12.4756445Z         "impl": {
2026-06-16T09:36:12.4756606Z           "complete": true,
2026-06-16T09:36:12.4756755Z           "evidence": [
2026-06-16T09:36:12.4756878Z             {
2026-06-16T09:36:12.4757126Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-16T09:36:12.4757288Z               "line": 59
2026-06-16T09:36:12.4757427Z             },
2026-06-16T09:36:12.4757551Z             {
2026-06-16T09:36:12.4757789Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.4757928Z               "line": 480
2026-06-16T09:36:12.4758066Z             },
2026-06-16T09:36:12.4758203Z             {
2026-06-16T09:36:12.4758439Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4758586Z               "line": 204
2026-06-16T09:36:12.4758730Z             },
2026-06-16T09:36:12.4758867Z             {
2026-06-16T09:36:12.4759216Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4759393Z               "line": 334
2026-06-16T09:36:12.4759516Z             },
2026-06-16T09:36:12.4759646Z             {
2026-06-16T09:36:12.4759899Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4760050Z               "line": 368
2026-06-16T09:36:12.4760184Z             },
2026-06-16T09:36:12.4760337Z             {
2026-06-16T09:36:12.4760562Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-16T09:36:12.4760703Z               "line": 74
2026-06-16T09:36:12.4760826Z             },
2026-06-16T09:36:12.4760960Z             {
2026-06-16T09:36:12.4761215Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4761358Z               "line": 234
2026-06-16T09:36:12.4761492Z             },
2026-06-16T09:36:12.4761621Z             {
2026-06-16T09:36:12.4761870Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4762016Z               "line": 390
2026-06-16T09:36:12.4762141Z             },
2026-06-16T09:36:12.4762274Z             {
2026-06-16T09:36:12.4762504Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4762646Z               "line": 45
2026-06-16T09:36:12.4762780Z             },
2026-06-16T09:36:12.4762903Z             {
2026-06-16T09:36:12.4763129Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4763275Z               "line": 114
2026-06-16T09:36:12.4763401Z             },
2026-06-16T09:36:12.4763528Z             {
2026-06-16T09:36:12.4763766Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4763908Z               "line": 152
2026-06-16T09:36:12.4764032Z             },
2026-06-16T09:36:12.4764157Z             {
2026-06-16T09:36:12.4764376Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4764524Z               "line": 168
2026-06-16T09:36:12.4764647Z             },
2026-06-16T09:36:12.4764776Z             {
2026-06-16T09:36:12.4765148Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4765286Z               "line": 178
2026-06-16T09:36:12.4765420Z             },
2026-06-16T09:36:12.4765548Z             {
2026-06-16T09:36:12.4765872Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4766020Z               "line": 210
2026-06-16T09:36:12.4766156Z             },
2026-06-16T09:36:12.4766275Z             {
2026-06-16T09:36:12.4766499Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4766652Z               "line": 287
2026-06-16T09:36:12.4766771Z             },
2026-06-16T09:36:12.4766904Z             {
2026-06-16T09:36:12.4767128Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4767273Z               "line": 311
2026-06-16T09:36:12.4767400Z             },
2026-06-16T09:36:12.4767524Z             {
2026-06-16T09:36:12.4767758Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4767926Z               "line": 389
2026-06-16T09:36:12.4768063Z             },
2026-06-16T09:36:12.4768192Z             {
2026-06-16T09:36:12.4768421Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4768565Z               "line": 438
2026-06-16T09:36:12.4768706Z             },
2026-06-16T09:36:12.4768839Z             {
2026-06-16T09:36:12.4769132Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-16T09:36:12.4769286Z               "line": 37
2026-06-16T09:36:12.4769418Z             },
2026-06-16T09:36:12.4769548Z             {
2026-06-16T09:36:12.4769771Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4769915Z               "line": 62
2026-06-16T09:36:12.4770052Z             },
2026-06-16T09:36:12.4770168Z             {
2026-06-16T09:36:12.4770376Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4770525Z               "line": 221
2026-06-16T09:36:12.4770649Z             },
2026-06-16T09:36:12.4770769Z             {
2026-06-16T09:36:12.4770953Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4771098Z               "line": 1647
2026-06-16T09:36:12.4771217Z             }
2026-06-16T09:36:12.4771344Z           ]
2026-06-16T09:36:12.4771482Z         },
2026-06-16T09:36:12.4771618Z         "int": {
2026-06-16T09:36:12.4771775Z           "complete": false,
2026-06-16T09:36:12.4771923Z           "evidence": []
2026-06-16T09:36:12.4772062Z         },
2026-06-16T09:36:12.4772186Z         "unit": {
2026-06-16T09:36:12.4772333Z           "complete": true,
2026-06-16T09:36:12.4772472Z           "evidence": [
2026-06-16T09:36:12.4772604Z             {
2026-06-16T09:36:12.4772829Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.4772977Z               "line": 360
2026-06-16T09:36:12.4773102Z             },
2026-06-16T09:36:12.4773229Z             {
2026-06-16T09:36:12.4773463Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4773597Z               "line": 787
2026-06-16T09:36:12.4773736Z             },
2026-06-16T09:36:12.4773864Z             {
2026-06-16T09:36:12.4774107Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4774253Z               "line": 844
2026-06-16T09:36:12.4774388Z             },
2026-06-16T09:36:12.4774516Z             {
2026-06-16T09:36:12.4774741Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.4774878Z               "line": 889
2026-06-16T09:36:12.4775008Z             },
2026-06-16T09:36:12.4775140Z             {
2026-06-16T09:36:12.4775360Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.4775508Z               "line": 1014
2026-06-16T09:36:12.4775638Z             },
2026-06-16T09:36:12.4775765Z             {
2026-06-16T09:36:12.4776013Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4776166Z               "line": 1212
2026-06-16T09:36:12.4776300Z             },
2026-06-16T09:36:12.4776428Z             {
2026-06-16T09:36:12.4776796Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4776945Z               "line": 1353
2026-06-16T09:36:12.4777068Z             },
2026-06-16T09:36:12.4777202Z             {
2026-06-16T09:36:12.4777532Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4777678Z               "line": 449
2026-06-16T09:36:12.4777808Z             },
2026-06-16T09:36:12.4777927Z             {
2026-06-16T09:36:12.4778157Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4778294Z               "line": 485
2026-06-16T09:36:12.4778428Z             },
2026-06-16T09:36:12.4778566Z             {
2026-06-16T09:36:12.4778786Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4779033Z               "line": 540
2026-06-16T09:36:12.4779158Z             },
2026-06-16T09:36:12.4779290Z             {
2026-06-16T09:36:12.4779513Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4779663Z               "line": 697
2026-06-16T09:36:12.4779798Z             },
2026-06-16T09:36:12.4779926Z             {
2026-06-16T09:36:12.4780146Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4780293Z               "line": 931
2026-06-16T09:36:12.4780427Z             },
2026-06-16T09:36:12.4780551Z             {
2026-06-16T09:36:12.4780771Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4780913Z               "line": 945
2026-06-16T09:36:12.4781043Z             },
2026-06-16T09:36:12.4781180Z             {
2026-06-16T09:36:12.4781400Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4781548Z               "line": 1214
2026-06-16T09:36:12.4781673Z             },
2026-06-16T09:36:12.4781795Z             {
2026-06-16T09:36:12.4782009Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.4782150Z               "line": 483
2026-06-16T09:36:12.4782288Z             },
2026-06-16T09:36:12.4782413Z             {
2026-06-16T09:36:12.4782612Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4782756Z               "line": 6947
2026-06-16T09:36:12.4782884Z             }
2026-06-16T09:36:12.4783008Z           ]
2026-06-16T09:36:12.4783141Z         }
2026-06-16T09:36:12.4783271Z       }
2026-06-16T09:36:12.4783389Z     },
2026-06-16T09:36:12.4783523Z     {
2026-06-16T09:36:12.4783671Z       "id": "REQ-INST-4",
2026-06-16T09:36:12.4784033Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-16T09:36:12.4784186Z       "requiredStages": [
2026-06-16T09:36:12.4784324Z         "impl",
2026-06-16T09:36:12.4784457Z         "unit"
2026-06-16T09:36:12.4784583Z       ],
2026-06-16T09:36:12.4784719Z       "stages": {
2026-06-16T09:36:12.4784847Z         "doc": {
2026-06-16T09:36:12.4785001Z           "complete": false,
2026-06-16T09:36:12.4785142Z           "evidence": []
2026-06-16T09:36:12.4785277Z         },
2026-06-16T09:36:12.4785419Z         "impl": {
2026-06-16T09:36:12.4785564Z           "complete": true,
2026-06-16T09:36:12.4785710Z           "evidence": [
2026-06-16T09:36:12.4785840Z             {
2026-06-16T09:36:12.4786078Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4786231Z               "line": 335
2026-06-16T09:36:12.4786359Z             },
2026-06-16T09:36:12.4786489Z             {
2026-06-16T09:36:12.4786712Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4786856Z               "line": 202
2026-06-16T09:36:12.4786988Z             },
2026-06-16T09:36:12.4787106Z             {
2026-06-16T09:36:12.4787333Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4787472Z               "line": 234
2026-06-16T09:36:12.4787600Z             },
2026-06-16T09:36:12.4787724Z             {
2026-06-16T09:36:12.4787948Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4788092Z               "line": 274
2026-06-16T09:36:12.4788220Z             }
2026-06-16T09:36:12.4788468Z           ]
2026-06-16T09:36:12.4788582Z         },
2026-06-16T09:36:12.4788707Z         "int": {
2026-06-16T09:36:12.4788859Z           "complete": false,
2026-06-16T09:36:12.4789075Z           "evidence": []
2026-06-16T09:36:12.4789332Z         },
2026-06-16T09:36:12.4789469Z         "unit": {
2026-06-16T09:36:12.4789628Z           "complete": true,
2026-06-16T09:36:12.4789774Z           "evidence": [
2026-06-16T09:36:12.4789897Z             {
2026-06-16T09:36:12.4790124Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.4790277Z               "line": 839
2026-06-16T09:36:12.4790401Z             },
2026-06-16T09:36:12.4790520Z             {
2026-06-16T09:36:12.4790740Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4790886Z               "line": 561
2026-06-16T09:36:12.4791011Z             },
2026-06-16T09:36:12.4791139Z             {
2026-06-16T09:36:12.4791364Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4791511Z               "line": 668
2026-06-16T09:36:12.4791636Z             },
2026-06-16T09:36:12.4791769Z             {
2026-06-16T09:36:12.4791989Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4792132Z               "line": 750
2026-06-16T09:36:12.4792257Z             }
2026-06-16T09:36:12.4792379Z           ]
2026-06-16T09:36:12.4792512Z         }
2026-06-16T09:36:12.4792635Z       }
2026-06-16T09:36:12.4792766Z     },
2026-06-16T09:36:12.4792887Z     {
2026-06-16T09:36:12.4793039Z       "id": "REQ-INST-5",
2026-06-16T09:36:12.4793401Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-16T09:36:12.4793568Z       "requiredStages": [
2026-06-16T09:36:12.4793706Z         "impl",
2026-06-16T09:36:12.4793827Z         "unit",
2026-06-16T09:36:12.4793959Z         "int"
2026-06-16T09:36:12.4794088Z       ],
2026-06-16T09:36:12.4794231Z       "stages": {
2026-06-16T09:36:12.4794355Z         "doc": {
2026-06-16T09:36:12.4794499Z           "complete": false,
2026-06-16T09:36:12.4794641Z           "evidence": []
2026-06-16T09:36:12.4794761Z         },
2026-06-16T09:36:12.4794903Z         "impl": {
2026-06-16T09:36:12.4795052Z           "complete": true,
2026-06-16T09:36:12.4795204Z           "evidence": [
2026-06-16T09:36:12.4795331Z             {
2026-06-16T09:36:12.4795570Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-16T09:36:12.4795722Z               "line": 85
2026-06-16T09:36:12.4795851Z             },
2026-06-16T09:36:12.4795984Z             {
2026-06-16T09:36:12.4796185Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4796328Z               "line": 68
2026-06-16T09:36:12.4796443Z             },
2026-06-16T09:36:12.4796567Z             {
2026-06-16T09:36:12.4796782Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4796923Z               "line": 99
2026-06-16T09:36:12.4797049Z             },
2026-06-16T09:36:12.4797176Z             {
2026-06-16T09:36:12.4797393Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4797528Z               "line": 183
2026-06-16T09:36:12.4797657Z             },
2026-06-16T09:36:12.4797785Z             {
2026-06-16T09:36:12.4797984Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4798151Z               "line": 314
2026-06-16T09:36:12.4798270Z             }
2026-06-16T09:36:12.4798399Z           ]
2026-06-16T09:36:12.4798527Z         },
2026-06-16T09:36:12.4798652Z         "int": {
2026-06-16T09:36:12.4798808Z           "complete": true,
2026-06-16T09:36:12.4799024Z           "evidence": [
2026-06-16T09:36:12.4799142Z             {
2026-06-16T09:36:12.4799385Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.4799524Z               "line": 156
2026-06-16T09:36:12.4799654Z             },
2026-06-16T09:36:12.4799786Z             {
2026-06-16T09:36:12.4800006Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-16T09:36:12.4800265Z               "line": 102
2026-06-16T09:36:12.4800396Z             },
2026-06-16T09:36:12.4800520Z             {
2026-06-16T09:36:12.4800746Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.4800889Z               "line": 705
2026-06-16T09:36:12.4801108Z             },
2026-06-16T09:36:12.4801238Z             {
2026-06-16T09:36:12.4801466Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.4801614Z               "line": 1067
2026-06-16T09:36:12.4801742Z             }
2026-06-16T09:36:12.4801868Z           ]
2026-06-16T09:36:12.4801995Z         },
2026-06-16T09:36:12.4802134Z         "unit": {
2026-06-16T09:36:12.4802286Z           "complete": true,
2026-06-16T09:36:12.4802420Z           "evidence": [
2026-06-16T09:36:12.4802544Z             {
2026-06-16T09:36:12.4802755Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4802897Z               "line": 552
2026-06-16T09:36:12.4803019Z             },
2026-06-16T09:36:12.4803162Z             {
2026-06-16T09:36:12.4803365Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.4803509Z               "line": 595
2026-06-16T09:36:12.4803642Z             },
2026-06-16T09:36:12.4803767Z             {
2026-06-16T09:36:12.4803989Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-16T09:36:12.4804133Z               "line": 219
2026-06-16T09:36:12.4804257Z             }
2026-06-16T09:36:12.4804387Z           ]
2026-06-16T09:36:12.4804510Z         }
2026-06-16T09:36:12.4804633Z       }
2026-06-16T09:36:12.4804758Z     },
2026-06-16T09:36:12.4804887Z     {
2026-06-16T09:36:12.4805031Z       "id": "REQ-INST-6",
2026-06-16T09:36:12.4805426Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-16T09:36:12.4805587Z       "requiredStages": [
2026-06-16T09:36:12.4805722Z         "impl",
2026-06-16T09:36:12.4805858Z         "unit",
2026-06-16T09:36:12.4805997Z         "int"
2026-06-16T09:36:12.4806126Z       ],
2026-06-16T09:36:12.4806263Z       "stages": {
2026-06-16T09:36:12.4806398Z         "doc": {
2026-06-16T09:36:12.4806554Z           "complete": true,
2026-06-16T09:36:12.4806698Z           "evidence": [
2026-06-16T09:36:12.4806826Z             {
2026-06-16T09:36:12.4807008Z               "path": "docs/DEFERRED.md",
2026-06-16T09:36:12.4807150Z               "line": 13
2026-06-16T09:36:12.4807271Z             }
2026-06-16T09:36:12.4807398Z           ]
2026-06-16T09:36:12.4807532Z         },
2026-06-16T09:36:12.4807661Z         "impl": {
2026-06-16T09:36:12.4807817Z           "complete": true,
2026-06-16T09:36:12.4807962Z           "evidence": [
2026-06-16T09:36:12.4808098Z             {
2026-06-16T09:36:12.4808322Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.4808477Z               "line": 391
2026-06-16T09:36:12.4808597Z             },
2026-06-16T09:36:12.4808720Z             {
2026-06-16T09:36:12.4809031Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-16T09:36:12.4809164Z               "line": 27
2026-06-16T09:36:12.4809312Z             },
2026-06-16T09:36:12.4809435Z             {
2026-06-16T09:36:12.4809656Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-16T09:36:12.4809798Z               "line": 73
2026-06-16T09:36:12.4809927Z             },
2026-06-16T09:36:12.4810060Z             {
2026-06-16T09:36:12.4810288Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-16T09:36:12.4810438Z               "line": 182
2026-06-16T09:36:12.4810562Z             },
2026-06-16T09:36:12.4810680Z             {
2026-06-16T09:36:12.4810904Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4811046Z               "line": 426
2026-06-16T09:36:12.4811180Z             },
2026-06-16T09:36:12.4811311Z             {
2026-06-16T09:36:12.4811526Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-16T09:36:12.4811673Z               "line": 31
2026-06-16T09:36:12.4811803Z             },
2026-06-16T09:36:12.4811921Z             {
2026-06-16T09:36:12.4812250Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.4812394Z               "line": 202
2026-06-16T09:36:12.4812517Z             },
2026-06-16T09:36:12.4812651Z             {
2026-06-16T09:36:12.4812956Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.4813091Z               "line": 83
2026-06-16T09:36:12.4813233Z             },
2026-06-16T09:36:12.4813358Z             {
2026-06-16T09:36:12.4813542Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4813680Z               "line": 1648
2026-06-16T09:36:12.4813820Z             },
2026-06-16T09:36:12.4813954Z             {
2026-06-16T09:36:12.4814149Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.4814292Z               "line": 179
2026-06-16T09:36:12.4814417Z             },
2026-06-16T09:36:12.4814545Z             {
2026-06-16T09:36:12.4814727Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.4814865Z               "line": 215
2026-06-16T09:36:12.4814994Z             }
2026-06-16T09:36:12.4815118Z           ]
2026-06-16T09:36:12.4815247Z         },
2026-06-16T09:36:12.4815380Z         "int": {
2026-06-16T09:36:12.4815537Z           "complete": true,
2026-06-16T09:36:12.4815685Z           "evidence": [
2026-06-16T09:36:12.4815814Z             {
2026-06-16T09:36:12.4816042Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.4816192Z               "line": 719
2026-06-16T09:36:12.4816324Z             },
2026-06-16T09:36:12.4816456Z             {
2026-06-16T09:36:12.4816690Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.4816842Z               "line": 1112
2026-06-16T09:36:12.4816981Z             },
2026-06-16T09:36:12.4817109Z             {
2026-06-16T09:36:12.4817296Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.4817438Z               "line": 726
2026-06-16T09:36:12.4817563Z             }
2026-06-16T09:36:12.4817687Z           ]
2026-06-16T09:36:12.4817816Z         },
2026-06-16T09:36:12.4817939Z         "unit": {
2026-06-16T09:36:12.4818097Z           "complete": true,
2026-06-16T09:36:12.4818240Z           "evidence": [
2026-06-16T09:36:12.4818368Z             {
2026-06-16T09:36:12.4818602Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.4818744Z               "line": 661
2026-06-16T09:36:12.4818868Z             },
2026-06-16T09:36:12.4819075Z             {
2026-06-16T09:36:12.4819299Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.4819448Z               "line": 899
2026-06-16T09:36:12.4819572Z             },
2026-06-16T09:36:12.4819700Z             {
2026-06-16T09:36:12.4819919Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-16T09:36:12.4820064Z               "line": 66
2026-06-16T09:36:12.4820191Z             },
2026-06-16T09:36:12.4820325Z             {
2026-06-16T09:36:12.4820535Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.4820683Z               "line": 297
2026-06-16T09:36:12.4820811Z             },
2026-06-16T09:36:12.4820935Z             {
2026-06-16T09:36:12.4821145Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.4821293Z               "line": 203
2026-06-16T09:36:12.4821437Z             }
2026-06-16T09:36:12.4821554Z           ]
2026-06-16T09:36:12.4821682Z         }
2026-06-16T09:36:12.4821805Z       }
2026-06-16T09:36:12.4821923Z     },
2026-06-16T09:36:12.4822044Z     {
2026-06-16T09:36:12.4822195Z       "id": "REQ-INST-7",
2026-06-16T09:36:12.4822472Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-16T09:36:12.4822630Z       "requiredStages": [
2026-06-16T09:36:12.4822773Z         "impl",
2026-06-16T09:36:12.4822901Z         "unit",
2026-06-16T09:36:12.4823040Z         "int"
2026-06-16T09:36:12.4823158Z       ],
2026-06-16T09:36:12.4823293Z       "stages": {
2026-06-16T09:36:12.4823430Z         "doc": {
2026-06-16T09:36:12.4823584Z           "complete": false,
2026-06-16T09:36:12.4823855Z           "evidence": []
2026-06-16T09:36:12.4823980Z         },
2026-06-16T09:36:12.4824126Z         "impl": {
2026-06-16T09:36:12.4824278Z           "complete": true,
2026-06-16T09:36:12.4824428Z           "evidence": [
2026-06-16T09:36:12.4824663Z             {
2026-06-16T09:36:12.4824892Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.4825038Z               "line": 436
2026-06-16T09:36:12.4825163Z             },
2026-06-16T09:36:12.4825287Z             {
2026-06-16T09:36:12.4825540Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4825687Z               "line": 27
2026-06-16T09:36:12.4825816Z             },
2026-06-16T09:36:12.4825944Z             {
2026-06-16T09:36:12.4826194Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4826340Z               "line": 207
2026-06-16T09:36:12.4826475Z             },
2026-06-16T09:36:12.4826597Z             {
2026-06-16T09:36:12.4826847Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4826997Z               "line": 344
2026-06-16T09:36:12.4827127Z             },
2026-06-16T09:36:12.4827250Z             {
2026-06-16T09:36:12.4827470Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-16T09:36:12.4827627Z               "line": 59
2026-06-16T09:36:12.4827757Z             },
2026-06-16T09:36:12.4827880Z             {
2026-06-16T09:36:12.4828114Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4828256Z               "line": 41
2026-06-16T09:36:12.4828386Z             },
2026-06-16T09:36:12.4828519Z             {
2026-06-16T09:36:12.4828758Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.4828900Z               "line": 27
2026-06-16T09:36:12.4829110Z             },
2026-06-16T09:36:12.4829247Z             {
2026-06-16T09:36:12.4829479Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.4829640Z               "line": 119
2026-06-16T09:36:12.4829775Z             },
2026-06-16T09:36:12.4829897Z             {
2026-06-16T09:36:12.4830127Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.4830265Z               "line": 134
2026-06-16T09:36:12.4830404Z             },
2026-06-16T09:36:12.4830536Z             {
2026-06-16T09:36:12.4830771Z               "path": "crates/spt-store/src/registry.rs",
2026-06-16T09:36:12.4830909Z               "line": 139
2026-06-16T09:36:12.4831042Z             }
2026-06-16T09:36:12.4831166Z           ]
2026-06-16T09:36:12.4831291Z         },
2026-06-16T09:36:12.4831428Z         "int": {
2026-06-16T09:36:12.4831583Z           "complete": true,
2026-06-16T09:36:12.4831729Z           "evidence": [
2026-06-16T09:36:12.4831854Z             {
2026-06-16T09:36:12.4832090Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-16T09:36:12.4832243Z               "line": 102
2026-06-16T09:36:12.4832365Z             },
2026-06-16T09:36:12.4832488Z             {
2026-06-16T09:36:12.4832722Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.4832880Z               "line": 663
2026-06-16T09:36:12.4833004Z             },
2026-06-16T09:36:12.4833146Z             {
2026-06-16T09:36:12.4833385Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.4833529Z               "line": 962
2026-06-16T09:36:12.4833657Z             }
2026-06-16T09:36:12.4833785Z           ]
2026-06-16T09:36:12.4833920Z         },
2026-06-16T09:36:12.4834052Z         "unit": {
2026-06-16T09:36:12.4834211Z           "complete": true,
2026-06-16T09:36:12.4834353Z           "evidence": [
2026-06-16T09:36:12.4834478Z             {
2026-06-16T09:36:12.4834737Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4834876Z               "line": 1082
2026-06-16T09:36:12.4835007Z             },
2026-06-16T09:36:12.4835136Z             {
2026-06-16T09:36:12.4835384Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.4835651Z               "line": 1414
2026-06-16T09:36:12.4835776Z             },
2026-06-16T09:36:12.4835914Z             {
2026-06-16T09:36:12.4836148Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-16T09:36:12.4836295Z               "line": 84
2026-06-16T09:36:12.4836519Z             },
2026-06-16T09:36:12.4836648Z             {
2026-06-16T09:36:12.4836882Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4837025Z               "line": 780
2026-06-16T09:36:12.4837162Z             },
2026-06-16T09:36:12.4837287Z             {
2026-06-16T09:36:12.4837510Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4837657Z               "line": 791
2026-06-16T09:36:12.4837792Z             },
2026-06-16T09:36:12.4837934Z             {
2026-06-16T09:36:12.4838163Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4838307Z               "line": 806
2026-06-16T09:36:12.4838440Z             },
2026-06-16T09:36:12.4838578Z             {
2026-06-16T09:36:12.4838821Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.4839045Z               "line": 166
2026-06-16T09:36:12.4839184Z             },
2026-06-16T09:36:12.4839304Z             {
2026-06-16T09:36:12.4839546Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.4839689Z               "line": 181
2026-06-16T09:36:12.4839826Z             },
2026-06-16T09:36:12.4839955Z             {
2026-06-16T09:36:12.4840186Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.4840330Z               "line": 214
2026-06-16T09:36:12.4840453Z             }
2026-06-16T09:36:12.4840592Z           ]
2026-06-16T09:36:12.4840716Z         }
2026-06-16T09:36:12.4840849Z       }
2026-06-16T09:36:12.4840983Z     },
2026-06-16T09:36:12.4841101Z     {
2026-06-16T09:36:12.4841255Z       "id": "REQ-INST-8",
2026-06-16T09:36:12.4841570Z       "title": "Remote-control mode distinct from local operation",
2026-06-16T09:36:12.4841727Z       "requiredStages": [
2026-06-16T09:36:12.4841856Z         "impl",
2026-06-16T09:36:12.4841993Z         "unit",
2026-06-16T09:36:12.4842133Z         "int"
2026-06-16T09:36:12.4842260Z       ],
2026-06-16T09:36:12.4842399Z       "stages": {
2026-06-16T09:36:12.4842538Z         "doc": {
2026-06-16T09:36:12.4842698Z           "complete": false,
2026-06-16T09:36:12.4842841Z           "evidence": []
2026-06-16T09:36:12.4842977Z         },
2026-06-16T09:36:12.4843121Z         "impl": {
2026-06-16T09:36:12.4843273Z           "complete": true,
2026-06-16T09:36:12.4843421Z           "evidence": [
2026-06-16T09:36:12.4843555Z             {
2026-06-16T09:36:12.4843774Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-16T09:36:12.4843912Z               "line": 104
2026-06-16T09:36:12.4844055Z             },
2026-06-16T09:36:12.4844184Z             {
2026-06-16T09:36:12.4844399Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-16T09:36:12.4844555Z               "line": 299
2026-06-16T09:36:12.4844690Z             },
2026-06-16T09:36:12.4844827Z             {
2026-06-16T09:36:12.4845048Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-16T09:36:12.4845198Z               "line": 339
2026-06-16T09:36:12.4845341Z             },
2026-06-16T09:36:12.4845473Z             {
2026-06-16T09:36:12.4845692Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-16T09:36:12.4845835Z               "line": 62
2026-06-16T09:36:12.4845963Z             }
2026-06-16T09:36:12.4846097Z           ]
2026-06-16T09:36:12.4846220Z         },
2026-06-16T09:36:12.4846360Z         "int": {
2026-06-16T09:36:12.4846511Z           "complete": true,
2026-06-16T09:36:12.4846660Z           "evidence": [
2026-06-16T09:36:12.4846794Z             {
2026-06-16T09:36:12.4847032Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.4847174Z               "line": 415
2026-06-16T09:36:12.4847309Z             },
2026-06-16T09:36:12.4847432Z             {
2026-06-16T09:36:12.4847780Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.4847939Z               "line": 1026
2026-06-16T09:36:12.4848060Z             }
2026-06-16T09:36:12.4848194Z           ]
2026-06-16T09:36:12.4848413Z         },
2026-06-16T09:36:12.4848542Z         "unit": {
2026-06-16T09:36:12.4848695Z           "complete": true,
2026-06-16T09:36:12.4848833Z           "evidence": [
2026-06-16T09:36:12.4849061Z             {
2026-06-16T09:36:12.4849291Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.4849443Z               "line": 358
2026-06-16T09:36:12.4849568Z             },
2026-06-16T09:36:12.4849686Z             {
2026-06-16T09:36:12.4849920Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.4850063Z               "line": 513
2026-06-16T09:36:12.4850198Z             },
2026-06-16T09:36:12.4850320Z             {
2026-06-16T09:36:12.4850548Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-16T09:36:12.4850703Z               "line": 116
2026-06-16T09:36:12.4850823Z             },
2026-06-16T09:36:12.4850951Z             {
2026-06-16T09:36:12.4851171Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-16T09:36:12.4851318Z               "line": 160
2026-06-16T09:36:12.4851453Z             }
2026-06-16T09:36:12.4851576Z           ]
2026-06-16T09:36:12.4851710Z         }
2026-06-16T09:36:12.4851834Z       }
2026-06-16T09:36:12.4851967Z     },
2026-06-16T09:36:12.4852092Z     {
2026-06-16T09:36:12.4852243Z       "id": "REQ-INST-9",
2026-06-16T09:36:12.4852634Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-16T09:36:12.4852797Z       "requiredStages": [
2026-06-16T09:36:12.4852935Z         "impl",
2026-06-16T09:36:12.4853060Z         "unit"
2026-06-16T09:36:12.4853187Z       ],
2026-06-16T09:36:12.4853315Z       "stages": {
2026-06-16T09:36:12.4853448Z         "doc": {
2026-06-16T09:36:12.4853599Z           "complete": false,
2026-06-16T09:36:12.4853758Z           "evidence": []
2026-06-16T09:36:12.4853880Z         },
2026-06-16T09:36:12.4854010Z         "impl": {
2026-06-16T09:36:12.4854171Z           "complete": true,
2026-06-16T09:36:12.4854316Z           "evidence": [
2026-06-16T09:36:12.4854458Z             {
2026-06-16T09:36:12.4854687Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4854834Z               "line": 417
2026-06-16T09:36:12.4854973Z             }
2026-06-16T09:36:12.4855092Z           ]
2026-06-16T09:36:12.4855221Z         },
2026-06-16T09:36:12.4855355Z         "int": {
2026-06-16T09:36:12.4855521Z           "complete": false,
2026-06-16T09:36:12.4855670Z           "evidence": []
2026-06-16T09:36:12.4855806Z         },
2026-06-16T09:36:12.4855939Z         "unit": {
2026-06-16T09:36:12.4856099Z           "complete": true,
2026-06-16T09:36:12.4856247Z           "evidence": [
2026-06-16T09:36:12.4856372Z             {
2026-06-16T09:36:12.4856615Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4856761Z               "line": 1321
2026-06-16T09:36:12.4856891Z             },
2026-06-16T09:36:12.4857030Z             {
2026-06-16T09:36:12.4857263Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4857424Z               "line": 1330
2026-06-16T09:36:12.4857555Z             },
2026-06-16T09:36:12.4857692Z             {
2026-06-16T09:36:12.4857916Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4860551Z               "line": 1346
2026-06-16T09:36:12.4860710Z             },
2026-06-16T09:36:12.4860833Z             {
2026-06-16T09:36:12.4861085Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4861226Z               "line": 1358
2026-06-16T09:36:12.4861359Z             },
2026-06-16T09:36:12.4861488Z             {
2026-06-16T09:36:12.4861731Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.4861883Z               "line": 1378
2026-06-16T09:36:12.4862013Z             }
2026-06-16T09:36:12.4862299Z           ]
2026-06-16T09:36:12.4862423Z         }
2026-06-16T09:36:12.4862551Z       }
2026-06-16T09:36:12.4862676Z     },
2026-06-16T09:36:12.4862799Z     {
2026-06-16T09:36:12.4862958Z       "id": "REQ-INSTALL-1",
2026-06-16T09:36:12.4863467Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-16T09:36:12.4863630Z       "requiredStages": [
2026-06-16T09:36:12.4863766Z         "doc",
2026-06-16T09:36:12.4863904Z         "impl",
2026-06-16T09:36:12.4864026Z         "int"
2026-06-16T09:36:12.4864154Z       ],
2026-06-16T09:36:12.4864298Z       "stages": {
2026-06-16T09:36:12.4864421Z         "doc": {
2026-06-16T09:36:12.4864570Z           "complete": true,
2026-06-16T09:36:12.4864708Z           "evidence": [
2026-06-16T09:36:12.4864832Z             {
2026-06-16T09:36:12.4864994Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.4865147Z               "line": 695
2026-06-16T09:36:12.4865271Z             }
2026-06-16T09:36:12.4865399Z           ]
2026-06-16T09:36:12.4865520Z         },
2026-06-16T09:36:12.4865647Z         "impl": {
2026-06-16T09:36:12.4865805Z           "complete": true,
2026-06-16T09:36:12.4865947Z           "evidence": [
2026-06-16T09:36:12.4866081Z             {
2026-06-16T09:36:12.4866276Z               "path": "installer/install.ps1",
2026-06-16T09:36:12.4866413Z               "line": 57
2026-06-16T09:36:12.4866551Z             },
2026-06-16T09:36:12.4866669Z             {
2026-06-16T09:36:12.4866851Z               "path": "installer/install.sh",
2026-06-16T09:36:12.4866993Z               "line": 52
2026-06-16T09:36:12.4867113Z             }
2026-06-16T09:36:12.4867247Z           ]
2026-06-16T09:36:12.4867374Z         },
2026-06-16T09:36:12.4867513Z         "int": {
2026-06-16T09:36:12.4867655Z           "complete": true,
2026-06-16T09:36:12.4867804Z           "evidence": [
2026-06-16T09:36:12.4867923Z             {
2026-06-16T09:36:12.4868152Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-16T09:36:12.4868304Z               "line": 21
2026-06-16T09:36:12.4868424Z             }
2026-06-16T09:36:12.4868562Z           ]
2026-06-16T09:36:12.4868682Z         },
2026-06-16T09:36:12.4868819Z         "unit": {
2026-06-16T09:36:12.4869083Z           "complete": false,
2026-06-16T09:36:12.4869243Z           "evidence": []
2026-06-16T09:36:12.4869362Z         }
2026-06-16T09:36:12.4869487Z       }
2026-06-16T09:36:12.4869605Z     },
2026-06-16T09:36:12.4869735Z     {
2026-06-16T09:36:12.4869895Z       "id": "REQ-INSTALL-2",
2026-06-16T09:36:12.4870168Z       "title": "Marketplace-repackaging-friendly install",
2026-06-16T09:36:12.4870331Z       "requiredStages": [
2026-06-16T09:36:12.4870454Z         "doc"
2026-06-16T09:36:12.4870582Z       ],
2026-06-16T09:36:12.4870726Z       "stages": {
2026-06-16T09:36:12.4870859Z         "doc": {
2026-06-16T09:36:12.4871017Z           "complete": true,
2026-06-16T09:36:12.4871164Z           "evidence": [
2026-06-16T09:36:12.4871304Z             {
2026-06-16T09:36:12.4871464Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.4871607Z               "line": 696
2026-06-16T09:36:12.4871743Z             }
2026-06-16T09:36:12.4871866Z           ]
2026-06-16T09:36:12.4871996Z         },
2026-06-16T09:36:12.4872133Z         "impl": {
2026-06-16T09:36:12.4872296Z           "complete": false,
2026-06-16T09:36:12.4872448Z           "evidence": []
2026-06-16T09:36:12.4872583Z         },
2026-06-16T09:36:12.4872706Z         "int": {
2026-06-16T09:36:12.4872850Z           "complete": false,
2026-06-16T09:36:12.4872997Z           "evidence": []
2026-06-16T09:36:12.4873125Z         },
2026-06-16T09:36:12.4873269Z         "unit": {
2026-06-16T09:36:12.4873421Z           "complete": false,
2026-06-16T09:36:12.4873570Z           "evidence": []
2026-06-16T09:36:12.4873698Z         }
2026-06-16T09:36:12.4873823Z       }
2026-06-16T09:36:12.4873950Z     },
2026-06-16T09:36:12.4874070Z     {
2026-06-16T09:36:12.4874223Z       "id": "REQ-INSTALL-3",
2026-06-16T09:36:12.4874507Z       "title": "Idempotent + interactive-optional first run",
2026-06-16T09:36:12.4874806Z       "requiredStages": [
2026-06-16T09:36:12.4874943Z         "impl",
2026-06-16T09:36:12.4875077Z         "int"
2026-06-16T09:36:12.4875192Z       ],
2026-06-16T09:36:12.4875445Z       "stages": {
2026-06-16T09:36:12.4875573Z         "doc": {
2026-06-16T09:36:12.4875726Z           "complete": false,
2026-06-16T09:36:12.4875873Z           "evidence": []
2026-06-16T09:36:12.4876007Z         },
2026-06-16T09:36:12.4876141Z         "impl": {
2026-06-16T09:36:12.4876303Z           "complete": true,
2026-06-16T09:36:12.4876446Z           "evidence": [
2026-06-16T09:36:12.4876569Z             {
2026-06-16T09:36:12.4876761Z               "path": "installer/install.ps1",
2026-06-16T09:36:12.4876907Z               "line": 100
2026-06-16T09:36:12.4877041Z             },
2026-06-16T09:36:12.4877167Z             {
2026-06-16T09:36:12.4877358Z               "path": "installer/install.ps1",
2026-06-16T09:36:12.4877496Z               "line": 111
2026-06-16T09:36:12.4877625Z             },
2026-06-16T09:36:12.4877750Z             {
2026-06-16T09:36:12.4877939Z               "path": "installer/install.sh",
2026-06-16T09:36:12.4878083Z               "line": 79
2026-06-16T09:36:12.4878206Z             }
2026-06-16T09:36:12.4878345Z           ]
2026-06-16T09:36:12.4878474Z         },
2026-06-16T09:36:12.4878598Z         "int": {
2026-06-16T09:36:12.4878741Z           "complete": true,
2026-06-16T09:36:12.4878879Z           "evidence": [
2026-06-16T09:36:12.4879093Z             {
2026-06-16T09:36:12.4879319Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-16T09:36:12.4879461Z               "line": 167
2026-06-16T09:36:12.4879591Z             }
2026-06-16T09:36:12.4879727Z           ]
2026-06-16T09:36:12.4879855Z         },
2026-06-16T09:36:12.4879990Z         "unit": {
2026-06-16T09:36:12.4880141Z           "complete": false,
2026-06-16T09:36:12.4880285Z           "evidence": []
2026-06-16T09:36:12.4880423Z         }
2026-06-16T09:36:12.4880548Z       }
2026-06-16T09:36:12.4880676Z     },
2026-06-16T09:36:12.4880794Z     {
2026-06-16T09:36:12.4880957Z       "id": "REQ-INSTALL-4",
2026-06-16T09:36:12.4882532Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-16T09:36:12.4882698Z       "requiredStages": [
2026-06-16T09:36:12.4882838Z         "impl",
2026-06-16T09:36:12.4882970Z         "unit"
2026-06-16T09:36:12.4883095Z       ],
2026-06-16T09:36:12.4883238Z       "stages": {
2026-06-16T09:36:12.4883371Z         "doc": {
2026-06-16T09:36:12.4883524Z           "complete": false,
2026-06-16T09:36:12.4883671Z           "evidence": []
2026-06-16T09:36:12.4883801Z         },
2026-06-16T09:36:12.4883929Z         "impl": {
2026-06-16T09:36:12.4884082Z           "complete": true,
2026-06-16T09:36:12.4884224Z           "evidence": [
2026-06-16T09:36:12.4884354Z             {
2026-06-16T09:36:12.4884620Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.4884765Z               "line": 154
2026-06-16T09:36:12.4884896Z             },
2026-06-16T09:36:12.4885020Z             {
2026-06-16T09:36:12.4885251Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4885390Z               "line": 29
2026-06-16T09:36:12.4885523Z             },
2026-06-16T09:36:12.4885657Z             {
2026-06-16T09:36:12.4885890Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4886039Z               "line": 275
2026-06-16T09:36:12.4886166Z             },
2026-06-16T09:36:12.4886300Z             {
2026-06-16T09:36:12.4886538Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4886673Z               "line": 339
2026-06-16T09:36:12.4886801Z             },
2026-06-16T09:36:12.4886930Z             {
2026-06-16T09:36:12.4887173Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4887434Z               "line": 369
2026-06-16T09:36:12.4887563Z             },
2026-06-16T09:36:12.4887695Z             {
2026-06-16T09:36:12.4887918Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4888170Z               "line": 401
2026-06-16T09:36:12.4888300Z             },
2026-06-16T09:36:12.4888428Z             {
2026-06-16T09:36:12.4888614Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4888762Z               "line": 5014
2026-06-16T09:36:12.4888892Z             }
2026-06-16T09:36:12.4889110Z           ]
2026-06-16T09:36:12.4889239Z         },
2026-06-16T09:36:12.4889372Z         "int": {
2026-06-16T09:36:12.4889531Z           "complete": false,
2026-06-16T09:36:12.4889682Z           "evidence": []
2026-06-16T09:36:12.4889802Z         },
2026-06-16T09:36:12.4889944Z         "unit": {
2026-06-16T09:36:12.4890088Z           "complete": true,
2026-06-16T09:36:12.4890236Z           "evidence": [
2026-06-16T09:36:12.4890372Z             {
2026-06-16T09:36:12.4890625Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.4890768Z               "line": 335
2026-06-16T09:36:12.4890902Z             },
2026-06-16T09:36:12.4891025Z             {
2026-06-16T09:36:12.4891251Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4891393Z               "line": 763
2026-06-16T09:36:12.4891522Z             },
2026-06-16T09:36:12.4891646Z             {
2026-06-16T09:36:12.4891879Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4892023Z               "line": 804
2026-06-16T09:36:12.4892157Z             },
2026-06-16T09:36:12.4892275Z             {
2026-06-16T09:36:12.4892504Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4892646Z               "line": 824
2026-06-16T09:36:12.4892775Z             },
2026-06-16T09:36:12.4892901Z             {
2026-06-16T09:36:12.4893093Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4893249Z               "line": 7267
2026-06-16T09:36:12.4893378Z             }
2026-06-16T09:36:12.4893502Z           ]
2026-06-16T09:36:12.4893626Z         }
2026-06-16T09:36:12.4893746Z       }
2026-06-16T09:36:12.4893869Z     },
2026-06-16T09:36:12.4893994Z     {
2026-06-16T09:36:12.4894160Z       "id": "REQ-INSTALL-5",
2026-06-16T09:36:12.4895344Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-16T09:36:12.4895508Z       "requiredStages": [
2026-06-16T09:36:12.4895637Z         "impl",
2026-06-16T09:36:12.4895773Z         "int"
2026-06-16T09:36:12.4895902Z       ],
2026-06-16T09:36:12.4896036Z       "stages": {
2026-06-16T09:36:12.4896168Z         "doc": {
2026-06-16T09:36:12.4896317Z           "complete": false,
2026-06-16T09:36:12.4896464Z           "evidence": []
2026-06-16T09:36:12.4896594Z         },
2026-06-16T09:36:12.4896736Z         "impl": {
2026-06-16T09:36:12.4896894Z           "complete": true,
2026-06-16T09:36:12.4897032Z           "evidence": [
2026-06-16T09:36:12.4897171Z             {
2026-06-16T09:36:12.4897356Z               "path": "installer/install.ps1",
2026-06-16T09:36:12.4897510Z               "line": 5
2026-06-16T09:36:12.4897632Z             },
2026-06-16T09:36:12.4897762Z             {
2026-06-16T09:36:12.4897942Z               "path": "installer/install.sh",
2026-06-16T09:36:12.4898079Z               "line": 6
2026-06-16T09:36:12.4898209Z             }
2026-06-16T09:36:12.4898330Z           ]
2026-06-16T09:36:12.4898463Z         },
2026-06-16T09:36:12.4898598Z         "int": {
2026-06-16T09:36:12.4898750Z           "complete": true,
2026-06-16T09:36:12.4898888Z           "evidence": [
2026-06-16T09:36:12.4899103Z             {
2026-06-16T09:36:12.4899336Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-16T09:36:12.4899476Z               "line": 22
2026-06-16T09:36:12.4899603Z             }
2026-06-16T09:36:12.4899851Z           ]
2026-06-16T09:36:12.4899980Z         },
2026-06-16T09:36:12.4900119Z         "unit": {
2026-06-16T09:36:12.4900271Z           "complete": false,
2026-06-16T09:36:12.4900411Z           "evidence": []
2026-06-16T09:36:12.4900745Z         }
2026-06-16T09:36:12.4900880Z       }
2026-06-16T09:36:12.4900999Z     },
2026-06-16T09:36:12.4901129Z     {
2026-06-16T09:36:12.4901295Z       "id": "REQ-INSTALL-6",
2026-06-16T09:36:12.4904297Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-16T09:36:12.4904467Z       "requiredStages": [
2026-06-16T09:36:12.4904602Z         "impl",
2026-06-16T09:36:12.4904739Z         "unit"
2026-06-16T09:36:12.4904878Z       ],
2026-06-16T09:36:12.4905016Z       "stages": {
2026-06-16T09:36:12.4905154Z         "doc": {
2026-06-16T09:36:12.4905312Z           "complete": false,
2026-06-16T09:36:12.4905460Z           "evidence": []
2026-06-16T09:36:12.4905598Z         },
2026-06-16T09:36:12.4905735Z         "impl": {
2026-06-16T09:36:12.4905899Z           "complete": true,
2026-06-16T09:36:12.4906040Z           "evidence": [
2026-06-16T09:36:12.4906168Z             {
2026-06-16T09:36:12.4906395Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.4906539Z               "line": 61
2026-06-16T09:36:12.4906657Z             },
2026-06-16T09:36:12.4906796Z             {
2026-06-16T09:36:12.4907024Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.4907173Z               "line": 596
2026-06-16T09:36:12.4907296Z             },
2026-06-16T09:36:12.4907421Z             {
2026-06-16T09:36:12.4907644Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4907793Z               "line": 191
2026-06-16T09:36:12.4907921Z             },
2026-06-16T09:36:12.4908051Z             {
2026-06-16T09:36:12.4908278Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4908423Z               "line": 276
2026-06-16T09:36:12.4908545Z             },
2026-06-16T09:36:12.4908678Z             {
2026-06-16T09:36:12.4908871Z               "path": "crates/spt/src/main.rs",
2026-06-16T09:36:12.4909091Z               "line": 42
2026-06-16T09:36:12.4909224Z             },
2026-06-16T09:36:12.4909353Z             {
2026-06-16T09:36:12.4909533Z               "path": "installer/install.sh",
2026-06-16T09:36:12.4909673Z               "line": 104
2026-06-16T09:36:12.4909807Z             }
2026-06-16T09:36:12.4909934Z           ]
2026-06-16T09:36:12.4910064Z         },
2026-06-16T09:36:12.4910201Z         "int": {
2026-06-16T09:36:12.4910356Z           "complete": false,
2026-06-16T09:36:12.4910497Z           "evidence": []
2026-06-16T09:36:12.4910627Z         },
2026-06-16T09:36:12.4910764Z         "unit": {
2026-06-16T09:36:12.4910908Z           "complete": true,
2026-06-16T09:36:12.4911050Z           "evidence": [
2026-06-16T09:36:12.4911174Z             {
2026-06-16T09:36:12.4911398Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-16T09:36:12.4911560Z               "line": 866
2026-06-16T09:36:12.4911690Z             }
2026-06-16T09:36:12.4911807Z           ]
2026-06-16T09:36:12.4911922Z         }
2026-06-16T09:36:12.4912042Z       }
2026-06-16T09:36:12.4912164Z     },
2026-06-16T09:36:12.4912285Z     {
2026-06-16T09:36:12.4912451Z       "id": "REQ-INSTALL-7",
2026-06-16T09:36:12.4915071Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-16T09:36:12.4915457Z       "requiredStages": [
2026-06-16T09:36:12.4915614Z         "impl"
2026-06-16T09:36:12.4915744Z       ],
2026-06-16T09:36:12.4915886Z       "stages": {
2026-06-16T09:36:12.4916020Z         "doc": {
2026-06-16T09:36:12.4916287Z           "complete": false,
2026-06-16T09:36:12.4916426Z           "evidence": []
2026-06-16T09:36:12.4916562Z         },
2026-06-16T09:36:12.4916700Z         "impl": {
2026-06-16T09:36:12.4916846Z           "complete": true,
2026-06-16T09:36:12.4916998Z           "evidence": [
2026-06-16T09:36:12.4917123Z             {
2026-06-16T09:36:12.4917317Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4917451Z               "line": 3606
2026-06-16T09:36:12.4917584Z             },
2026-06-16T09:36:12.4917724Z             {
2026-06-16T09:36:12.4917908Z               "path": "installer/install.ps1",
2026-06-16T09:36:12.4918053Z               "line": 157
2026-06-16T09:36:12.4918181Z             }
2026-06-16T09:36:12.4918315Z           ]
2026-06-16T09:36:12.4918438Z         },
2026-06-16T09:36:12.4918577Z         "int": {
2026-06-16T09:36:12.4918739Z           "complete": false,
2026-06-16T09:36:12.4918877Z           "evidence": []
2026-06-16T09:36:12.4919086Z         },
2026-06-16T09:36:12.4919218Z         "unit": {
2026-06-16T09:36:12.4919380Z           "complete": false,
2026-06-16T09:36:12.4919526Z           "evidence": []
2026-06-16T09:36:12.4919656Z         }
2026-06-16T09:36:12.4919779Z       }
2026-06-16T09:36:12.4919904Z     },
2026-06-16T09:36:12.4920043Z     {
2026-06-16T09:36:12.4920199Z       "id": "REQ-INSTALL-8",
2026-06-16T09:36:12.4922892Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-16T09:36:12.4923064Z       "requiredStages": [
2026-06-16T09:36:12.4923193Z         "impl"
2026-06-16T09:36:12.4923316Z       ],
2026-06-16T09:36:12.4923456Z       "stages": {
2026-06-16T09:36:12.4923603Z         "doc": {
2026-06-16T09:36:12.4923742Z           "complete": false,
2026-06-16T09:36:12.4923893Z           "evidence": []
2026-06-16T09:36:12.4924032Z         },
2026-06-16T09:36:12.4924161Z         "impl": {
2026-06-16T09:36:12.4924317Z           "complete": true,
2026-06-16T09:36:12.4924450Z           "evidence": [
2026-06-16T09:36:12.4924582Z             {
2026-06-16T09:36:12.4924763Z               "path": "installer/install.ps1",
2026-06-16T09:36:12.4924915Z               "line": 184
2026-06-16T09:36:12.4925049Z             },
2026-06-16T09:36:12.4925168Z             {
2026-06-16T09:36:12.4925355Z               "path": "installer/install.sh",
2026-06-16T09:36:12.4925502Z               "line": 121
2026-06-16T09:36:12.4925631Z             }
2026-06-16T09:36:12.4925764Z           ]
2026-06-16T09:36:12.4925902Z         },
2026-06-16T09:36:12.4926041Z         "int": {
2026-06-16T09:36:12.4926188Z           "complete": false,
2026-06-16T09:36:12.4926342Z           "evidence": []
2026-06-16T09:36:12.4926479Z         },
2026-06-16T09:36:12.4926614Z         "unit": {
2026-06-16T09:36:12.4926765Z           "complete": false,
2026-06-16T09:36:12.4926910Z           "evidence": []
2026-06-16T09:36:12.4927038Z         }
2026-06-16T09:36:12.4927160Z       }
2026-06-16T09:36:12.4927294Z     },
2026-06-16T09:36:12.4927415Z     {
2026-06-16T09:36:12.4927582Z       "id": "REQ-INSTALL-9",
2026-06-16T09:36:12.4930541Z       "title": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--asset <name>]` fetches a `.spt` tar asset over HTTPS+GitHub trust, extracts it to the durable adapters/_github home, and registers the root — ships built binaries source-free and versioned (the distribution path for an adapter whose dev repo is a monorepo subdir, where --github root-only clone does not fit)",
2026-06-16T09:36:12.4930865Z       "requiredStages": [
2026-06-16T09:36:12.4931006Z         "doc",
2026-06-16T09:36:12.4931132Z         "impl",
2026-06-16T09:36:12.4931270Z         "unit"
2026-06-16T09:36:12.4931499Z       ],
2026-06-16T09:36:12.4931650Z       "stages": {
2026-06-16T09:36:12.4931785Z         "doc": {
2026-06-16T09:36:12.4931937Z           "complete": true,
2026-06-16T09:36:12.4932076Z           "evidence": [
2026-06-16T09:36:12.4932204Z             {
2026-06-16T09:36:12.4932368Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.4932505Z               "line": 712
2026-06-16T09:36:12.4932627Z             }
2026-06-16T09:36:12.4932752Z           ]
2026-06-16T09:36:12.4932880Z         },
2026-06-16T09:36:12.4933023Z         "impl": {
2026-06-16T09:36:12.4933176Z           "complete": true,
2026-06-16T09:36:12.4933319Z           "evidence": [
2026-06-16T09:36:12.4933443Z             {
2026-06-16T09:36:12.4933643Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4933795Z               "line": 2317
2026-06-16T09:36:12.4933920Z             },
2026-06-16T09:36:12.4934063Z             {
2026-06-16T09:36:12.4934244Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4934397Z               "line": 2341
2026-06-16T09:36:12.4934525Z             }
2026-06-16T09:36:12.4934655Z           ]
2026-06-16T09:36:12.4934777Z         },
2026-06-16T09:36:12.4934910Z         "int": {
2026-06-16T09:36:12.4935061Z           "complete": false,
2026-06-16T09:36:12.4935212Z           "evidence": []
2026-06-16T09:36:12.4935338Z         },
2026-06-16T09:36:12.4935461Z         "unit": {
2026-06-16T09:36:12.4935619Z           "complete": true,
2026-06-16T09:36:12.4935757Z           "evidence": [
2026-06-16T09:36:12.4935881Z             {
2026-06-16T09:36:12.4936071Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4936215Z               "line": 6561
2026-06-16T09:36:12.4936344Z             },
2026-06-16T09:36:12.4936467Z             {
2026-06-16T09:36:12.4936658Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4936801Z               "line": 7297
2026-06-16T09:36:12.4936926Z             }
2026-06-16T09:36:12.4937059Z           ]
2026-06-16T09:36:12.4937198Z         }
2026-06-16T09:36:12.4937330Z       }
2026-06-16T09:36:12.4937470Z     },
2026-06-16T09:36:12.4937593Z     {
2026-06-16T09:36:12.4937748Z       "id": "REQ-KICK-1",
2026-06-16T09:36:12.4943850Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-16T09:36:12.4944056Z       "requiredStages": [
2026-06-16T09:36:12.4944184Z         "doc",
2026-06-16T09:36:12.4944318Z         "impl",
2026-06-16T09:36:12.4944455Z         "unit",
2026-06-16T09:36:12.4944576Z         "int"
2026-06-16T09:36:12.4944704Z       ],
2026-06-16T09:36:12.4944843Z       "stages": {
2026-06-16T09:36:12.4944967Z         "doc": {
2026-06-16T09:36:12.4945124Z           "complete": true,
2026-06-16T09:36:12.4945267Z           "evidence": [
2026-06-16T09:36:12.4945399Z             {
2026-06-16T09:36:12.4945547Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.4945678Z               "line": 323
2026-06-16T09:36:12.4945812Z             }
2026-06-16T09:36:12.4946069Z           ]
2026-06-16T09:36:12.4946194Z         },
2026-06-16T09:36:12.4946321Z         "impl": {
2026-06-16T09:36:12.4946490Z           "complete": true,
2026-06-16T09:36:12.4946636Z           "evidence": [
2026-06-16T09:36:12.4946771Z             {
2026-06-16T09:36:12.4947114Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-16T09:36:12.4947262Z               "line": 41
2026-06-16T09:36:12.4947395Z             },
2026-06-16T09:36:12.4947528Z             {
2026-06-16T09:36:12.4947710Z               "path": "crates/spt/src/rc.rs",
2026-06-16T09:36:12.4947857Z               "line": 181
2026-06-16T09:36:12.4947991Z             }
2026-06-16T09:36:12.4948116Z           ]
2026-06-16T09:36:12.4948242Z         },
2026-06-16T09:36:12.4948380Z         "int": {
2026-06-16T09:36:12.4948526Z           "complete": true,
2026-06-16T09:36:12.4948669Z           "evidence": [
2026-06-16T09:36:12.4948789Z             {
2026-06-16T09:36:12.4949118Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.4949274Z               "line": 789
2026-06-16T09:36:12.4949399Z             }
2026-06-16T09:36:12.4949536Z           ]
2026-06-16T09:36:12.4949656Z         },
2026-06-16T09:36:12.4949794Z         "unit": {
2026-06-16T09:36:12.4949947Z           "complete": true,
2026-06-16T09:36:12.4950081Z           "evidence": [
2026-06-16T09:36:12.4950214Z             {
2026-06-16T09:36:12.4950424Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-16T09:36:12.4950577Z               "line": 205
2026-06-16T09:36:12.4950706Z             }
2026-06-16T09:36:12.4950842Z           ]
2026-06-16T09:36:12.4950957Z         }
2026-06-16T09:36:12.4951093Z       }
2026-06-16T09:36:12.4951216Z     },
2026-06-16T09:36:12.4951342Z     {
2026-06-16T09:36:12.4951507Z       "id": "REQ-MANIFEST-1",
2026-06-16T09:36:12.4951899Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-16T09:36:12.4952061Z       "requiredStages": [
2026-06-16T09:36:12.4952185Z         "doc",
2026-06-16T09:36:12.4952333Z         "impl",
2026-06-16T09:36:12.4952475Z         "unit"
2026-06-16T09:36:12.4952610Z       ],
2026-06-16T09:36:12.4952747Z       "stages": {
2026-06-16T09:36:12.4952882Z         "doc": {
2026-06-16T09:36:12.4953033Z           "complete": true,
2026-06-16T09:36:12.4953178Z           "evidence": [
2026-06-16T09:36:12.4953310Z             {
2026-06-16T09:36:12.4953488Z               "path": "docs/MANIFEST.md",
2026-06-16T09:36:12.4953634Z               "line": 19
2026-06-16T09:36:12.4953766Z             }
2026-06-16T09:36:12.4953892Z           ]
2026-06-16T09:36:12.4954019Z         },
2026-06-16T09:36:12.4954154Z         "impl": {
2026-06-16T09:36:12.4954320Z           "complete": true,
2026-06-16T09:36:12.4954454Z           "evidence": [
2026-06-16T09:36:12.4954587Z             {
2026-06-16T09:36:12.4954826Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4954955Z               "line": 18
2026-06-16T09:36:12.4955098Z             }
2026-06-16T09:36:12.4955226Z           ]
2026-06-16T09:36:12.4955349Z         },
2026-06-16T09:36:12.4955470Z         "int": {
2026-06-16T09:36:12.4955631Z           "complete": false,
2026-06-16T09:36:12.4955766Z           "evidence": []
2026-06-16T09:36:12.4955898Z         },
2026-06-16T09:36:12.4956035Z         "unit": {
2026-06-16T09:36:12.4956187Z           "complete": true,
2026-06-16T09:36:12.4956333Z           "evidence": [
2026-06-16T09:36:12.4956453Z             {
2026-06-16T09:36:12.4956691Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4956844Z               "line": 930
2026-06-16T09:36:12.4956972Z             },
2026-06-16T09:36:12.4957106Z             {
2026-06-16T09:36:12.4957326Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4957468Z               "line": 1044
2026-06-16T09:36:12.4957607Z             },
2026-06-16T09:36:12.4957736Z             {
2026-06-16T09:36:12.4957970Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4958231Z               "line": 1056
2026-06-16T09:36:12.4958361Z             },
2026-06-16T09:36:12.4958489Z             {
2026-06-16T09:36:12.4958723Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4959049Z               "line": 1067
2026-06-16T09:36:12.4959177Z             },
2026-06-16T09:36:12.4959301Z             {
2026-06-16T09:36:12.4959534Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4959678Z               "line": 1084
2026-06-16T09:36:12.4959815Z             },
2026-06-16T09:36:12.4959964Z             {
2026-06-16T09:36:12.4960197Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4960335Z               "line": 1098
2026-06-16T09:36:12.4960478Z             },
2026-06-16T09:36:12.4960613Z             {
2026-06-16T09:36:12.4960856Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4961036Z               "line": 1214
2026-06-16T09:36:12.4961195Z             },
2026-06-16T09:36:12.4961331Z             {
2026-06-16T09:36:12.4961555Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4961701Z               "line": 1229
2026-06-16T09:36:12.4961834Z             },
2026-06-16T09:36:12.4961973Z             {
2026-06-16T09:36:12.4962197Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4962344Z               "line": 1340
2026-06-16T09:36:12.4962484Z             },
2026-06-16T09:36:12.4962607Z             {
2026-06-16T09:36:12.4962836Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4962983Z               "line": 1351
2026-06-16T09:36:12.4963108Z             }
2026-06-16T09:36:12.4963231Z           ]
2026-06-16T09:36:12.4963369Z         }
2026-06-16T09:36:12.4963489Z       }
2026-06-16T09:36:12.4963618Z     },
2026-06-16T09:36:12.4963757Z     {
2026-06-16T09:36:12.4963922Z       "id": "REQ-MANIFEST-2",
2026-06-16T09:36:12.4965004Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-16T09:36:12.4965176Z       "requiredStages": [
2026-06-16T09:36:12.4965300Z         "doc",
2026-06-16T09:36:12.4965443Z         "impl",
2026-06-16T09:36:12.4965629Z         "unit"
2026-06-16T09:36:12.4965772Z       ],
2026-06-16T09:36:12.4965914Z       "stages": {
2026-06-16T09:36:12.4966049Z         "doc": {
2026-06-16T09:36:12.4966210Z           "complete": true,
2026-06-16T09:36:12.4966359Z           "evidence": [
2026-06-16T09:36:12.4966486Z             {
2026-06-16T09:36:12.4966648Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.4966794Z               "line": 75
2026-06-16T09:36:12.4966927Z             }
2026-06-16T09:36:12.4967062Z           ]
2026-06-16T09:36:12.4967189Z         },
2026-06-16T09:36:12.4967329Z         "impl": {
2026-06-16T09:36:12.4967479Z           "complete": true,
2026-06-16T09:36:12.4967624Z           "evidence": [
2026-06-16T09:36:12.4967752Z             {
2026-06-16T09:36:12.4968019Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4968167Z               "line": 62
2026-06-16T09:36:12.4968301Z             },
2026-06-16T09:36:12.4968429Z             {
2026-06-16T09:36:12.4968677Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4968820Z               "line": 15
2026-06-16T09:36:12.4969034Z             },
2026-06-16T09:36:12.4969160Z             {
2026-06-16T09:36:12.4969396Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4969544Z               "line": 65
2026-06-16T09:36:12.4969665Z             },
2026-06-16T09:36:12.4969799Z             {
2026-06-16T09:36:12.4970032Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4970177Z               "line": 83
2026-06-16T09:36:12.4970305Z             },
2026-06-16T09:36:12.4970443Z             {
2026-06-16T09:36:12.4970676Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4970929Z               "line": 183
2026-06-16T09:36:12.4971062Z             },
2026-06-16T09:36:12.4971182Z             {
2026-06-16T09:36:12.4971426Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4971572Z               "line": 482
2026-06-16T09:36:12.4971822Z             },
2026-06-16T09:36:12.4971949Z             {
2026-06-16T09:36:12.4972176Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4972317Z               "line": 508
2026-06-16T09:36:12.4972447Z             },
2026-06-16T09:36:12.4972580Z             {
2026-06-16T09:36:12.4972814Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4972961Z               "line": 626
2026-06-16T09:36:12.4973091Z             },
2026-06-16T09:36:12.4973214Z             {
2026-06-16T09:36:12.4973453Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4973596Z               "line": 651
2026-06-16T09:36:12.4973735Z             },
2026-06-16T09:36:12.4973863Z             {
2026-06-16T09:36:12.4974091Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4974235Z               "line": 674
2026-06-16T09:36:12.4974360Z             },
2026-06-16T09:36:12.4974497Z             {
2026-06-16T09:36:12.4974726Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4974877Z               "line": 689
2026-06-16T09:36:12.4974992Z             },
2026-06-16T09:36:12.4975111Z             {
2026-06-16T09:36:12.4975312Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4975454Z               "line": 5179
2026-06-16T09:36:12.4975589Z             },
2026-06-16T09:36:12.4975712Z             {
2026-06-16T09:36:12.4975898Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4976041Z               "line": 5193
2026-06-16T09:36:12.4976169Z             },
2026-06-16T09:36:12.4976304Z             {
2026-06-16T09:36:12.4976489Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4976642Z               "line": 5227
2026-06-16T09:36:12.4976771Z             }
2026-06-16T09:36:12.4976905Z           ]
2026-06-16T09:36:12.4977037Z         },
2026-06-16T09:36:12.4977165Z         "int": {
2026-06-16T09:36:12.4977330Z           "complete": false,
2026-06-16T09:36:12.4977487Z           "evidence": []
2026-06-16T09:36:12.4977612Z         },
2026-06-16T09:36:12.4977749Z         "unit": {
2026-06-16T09:36:12.4977903Z           "complete": true,
2026-06-16T09:36:12.4978035Z           "evidence": [
2026-06-16T09:36:12.4978170Z             {
2026-06-16T09:36:12.4978407Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.4978556Z               "line": 920
2026-06-16T09:36:12.4978693Z             },
2026-06-16T09:36:12.4978818Z             {
2026-06-16T09:36:12.4979128Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4979275Z               "line": 211
2026-06-16T09:36:12.4979410Z             },
2026-06-16T09:36:12.4982081Z             {
2026-06-16T09:36:12.4982372Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4982523Z               "line": 272
2026-06-16T09:36:12.4982656Z             },
2026-06-16T09:36:12.4982787Z             {
2026-06-16T09:36:12.4983036Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4983183Z               "line": 313
2026-06-16T09:36:12.4983322Z             },
2026-06-16T09:36:12.4983440Z             {
2026-06-16T09:36:12.4983679Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4983822Z               "line": 325
2026-06-16T09:36:12.4983961Z             },
2026-06-16T09:36:12.4984094Z             {
2026-06-16T09:36:12.4984318Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4984466Z               "line": 336
2026-06-16T09:36:12.4984591Z             },
2026-06-16T09:36:12.4984719Z             {
2026-06-16T09:36:12.4984948Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4985230Z               "line": 345
2026-06-16T09:36:12.4985357Z             },
2026-06-16T09:36:12.4985499Z             {
2026-06-16T09:36:12.4985733Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4985877Z               "line": 361
2026-06-16T09:36:12.4986115Z             },
2026-06-16T09:36:12.4986229Z             {
2026-06-16T09:36:12.4986468Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4986615Z               "line": 444
2026-06-16T09:36:12.4986744Z             },
2026-06-16T09:36:12.4986873Z             {
2026-06-16T09:36:12.4987103Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4987268Z               "line": 877
2026-06-16T09:36:12.4987408Z             },
2026-06-16T09:36:12.4987531Z             {
2026-06-16T09:36:12.4987764Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4987904Z               "line": 901
2026-06-16T09:36:12.4988042Z             },
2026-06-16T09:36:12.4988162Z             {
2026-06-16T09:36:12.4988386Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4988524Z               "line": 927
2026-06-16T09:36:12.4988647Z             },
2026-06-16T09:36:12.4988782Z             {
2026-06-16T09:36:12.4989135Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4989272Z               "line": 946
2026-06-16T09:36:12.4989392Z             },
2026-06-16T09:36:12.4989525Z             {
2026-06-16T09:36:12.4989750Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4989897Z               "line": 977
2026-06-16T09:36:12.4990027Z             },
2026-06-16T09:36:12.4990150Z             {
2026-06-16T09:36:12.4990375Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.4990516Z               "line": 309
2026-06-16T09:36:12.4990645Z             },
2026-06-16T09:36:12.4990776Z             {
2026-06-16T09:36:12.4990972Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.4991125Z               "line": 532
2026-06-16T09:36:12.4991248Z             },
2026-06-16T09:36:12.4991382Z             {
2026-06-16T09:36:12.4991568Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4991721Z               "line": 7474
2026-06-16T09:36:12.4991859Z             },
2026-06-16T09:36:12.4991988Z             {
2026-06-16T09:36:12.4992178Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.4992322Z               "line": 8384
2026-06-16T09:36:12.4992449Z             }
2026-06-16T09:36:12.4992575Z           ]
2026-06-16T09:36:12.4992706Z         }
2026-06-16T09:36:12.4992832Z       }
2026-06-16T09:36:12.4992956Z     },
2026-06-16T09:36:12.4993083Z     {
2026-06-16T09:36:12.4993245Z       "id": "REQ-MANIFEST-3",
2026-06-16T09:36:12.4994697Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-16T09:36:12.4994874Z       "requiredStages": [
2026-06-16T09:36:12.4995011Z         "doc",
2026-06-16T09:36:12.4995151Z         "impl",
2026-06-16T09:36:12.4995269Z         "unit"
2026-06-16T09:36:12.4995399Z       ],
2026-06-16T09:36:12.4995546Z       "stages": {
2026-06-16T09:36:12.4995685Z         "doc": {
2026-06-16T09:36:12.4995842Z           "complete": true,
2026-06-16T09:36:12.4995988Z           "evidence": [
2026-06-16T09:36:12.4996127Z             {
2026-06-16T09:36:12.4996284Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.4996428Z               "line": 81
2026-06-16T09:36:12.4996551Z             }
2026-06-16T09:36:12.4996675Z           ]
2026-06-16T09:36:12.4996804Z         },
2026-06-16T09:36:12.4996946Z         "impl": {
2026-06-16T09:36:12.4997104Z           "complete": true,
2026-06-16T09:36:12.4997242Z           "evidence": [
2026-06-16T09:36:12.4997363Z             {
2026-06-16T09:36:12.4997600Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.4997871Z               "line": 72
2026-06-16T09:36:12.4997987Z             },
2026-06-16T09:36:12.4998114Z             {
2026-06-16T09:36:12.4998357Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4998488Z               "line": 101
2026-06-16T09:36:12.4998728Z             },
2026-06-16T09:36:12.4998846Z             {
2026-06-16T09:36:12.4999170Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.4999318Z               "line": 132
2026-06-16T09:36:12.4999465Z             },
2026-06-16T09:36:12.4999600Z             {
2026-06-16T09:36:12.4999837Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.4999981Z               "line": 532
2026-06-16T09:36:12.5000109Z             },
2026-06-16T09:36:12.5000230Z             {
2026-06-16T09:36:12.5000462Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.5000606Z               "line": 588
2026-06-16T09:36:12.5000739Z             },
2026-06-16T09:36:12.5000869Z             {
2026-06-16T09:36:12.5001057Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5001201Z               "line": 5240
2026-06-16T09:36:12.5001341Z             },
2026-06-16T09:36:12.5001470Z             {
2026-06-16T09:36:12.5001665Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5001818Z               "line": 5266
2026-06-16T09:36:12.5001947Z             }
2026-06-16T09:36:12.5002070Z           ]
2026-06-16T09:36:12.5002190Z         },
2026-06-16T09:36:12.5002328Z         "int": {
2026-06-16T09:36:12.5002486Z           "complete": false,
2026-06-16T09:36:12.5002638Z           "evidence": []
2026-06-16T09:36:12.5002767Z         },
2026-06-16T09:36:12.5002905Z         "unit": {
2026-06-16T09:36:12.5003058Z           "complete": true,
2026-06-16T09:36:12.5003197Z           "evidence": [
2026-06-16T09:36:12.5003329Z             {
2026-06-16T09:36:12.5003558Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.5003709Z               "line": 371
2026-06-16T09:36:12.5003847Z             },
2026-06-16T09:36:12.5003969Z             {
2026-06-16T09:36:12.5004204Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.5004341Z               "line": 429
2026-06-16T09:36:12.5004490Z             },
2026-06-16T09:36:12.5004618Z             {
2026-06-16T09:36:12.5004838Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.5004985Z               "line": 1001
2026-06-16T09:36:12.5005110Z             },
2026-06-16T09:36:12.5005238Z             {
2026-06-16T09:36:12.5005425Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5005567Z               "line": 7529
2026-06-16T09:36:12.5005697Z             }
2026-06-16T09:36:12.5005819Z           ]
2026-06-16T09:36:12.5005954Z         }
2026-06-16T09:36:12.5006078Z       }
2026-06-16T09:36:12.5006211Z     },
2026-06-16T09:36:12.5006331Z     {
2026-06-16T09:36:12.5006496Z       "id": "REQ-MANIFEST-4",
2026-06-16T09:36:12.5008075Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-16T09:36:12.5008242Z       "requiredStages": [
2026-06-16T09:36:12.5008384Z         "doc",
2026-06-16T09:36:12.5008518Z         "impl",
2026-06-16T09:36:12.5008642Z         "unit"
2026-06-16T09:36:12.5008765Z       ],
2026-06-16T09:36:12.5008903Z       "stages": {
2026-06-16T09:36:12.5009143Z         "doc": {
2026-06-16T09:36:12.5009288Z           "complete": true,
2026-06-16T09:36:12.5009492Z           "evidence": [
2026-06-16T09:36:12.5009616Z             {
2026-06-16T09:36:12.5009782Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.5009921Z               "line": 88
2026-06-16T09:36:12.5010054Z             }
2026-06-16T09:36:12.5010184Z           ]
2026-06-16T09:36:12.5010298Z         },
2026-06-16T09:36:12.5010441Z         "impl": {
2026-06-16T09:36:12.5010726Z           "complete": true,
2026-06-16T09:36:12.5010865Z           "evidence": [
2026-06-16T09:36:12.5010998Z             {
2026-06-16T09:36:12.5011236Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.5011371Z               "line": 80
2026-06-16T09:36:12.5011603Z             },
2026-06-16T09:36:12.5011731Z             {
2026-06-16T09:36:12.5011963Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.5012106Z               "line": 152
2026-06-16T09:36:12.5012230Z             },
2026-06-16T09:36:12.5012359Z             {
2026-06-16T09:36:12.5012573Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.5012713Z               "line": 83
2026-06-16T09:36:12.5012846Z             },
2026-06-16T09:36:12.5012974Z             {
2026-06-16T09:36:12.5013203Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5013347Z               "line": 625
2026-06-16T09:36:12.5013480Z             },
2026-06-16T09:36:12.5013623Z             {
2026-06-16T09:36:12.5013841Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5013981Z               "line": 650
2026-06-16T09:36:12.5014104Z             }
2026-06-16T09:36:12.5014236Z           ]
2026-06-16T09:36:12.5014360Z         },
2026-06-16T09:36:12.5014492Z         "int": {
2026-06-16T09:36:12.5014645Z           "complete": false,
2026-06-16T09:36:12.5014792Z           "evidence": []
2026-06-16T09:36:12.5014925Z         },
2026-06-16T09:36:12.5015055Z         "unit": {
2026-06-16T09:36:12.5015202Z           "complete": true,
2026-06-16T09:36:12.5015341Z           "evidence": [
2026-06-16T09:36:12.5015464Z             {
2026-06-16T09:36:12.5015703Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.5015851Z               "line": 1164
2026-06-16T09:36:12.5015975Z             },
2026-06-16T09:36:12.5016094Z             {
2026-06-16T09:36:12.5016332Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.5016485Z               "line": 1197
2026-06-16T09:36:12.5016619Z             },
2026-06-16T09:36:12.5016748Z             {
2026-06-16T09:36:12.5016967Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5017103Z               "line": 982
2026-06-16T09:36:12.5017233Z             }
2026-06-16T09:36:12.5017361Z           ]
2026-06-16T09:36:12.5017490Z         }
2026-06-16T09:36:12.5017619Z       }
2026-06-16T09:36:12.5017757Z     },
2026-06-16T09:36:12.5017882Z     {
2026-06-16T09:36:12.5018052Z       "id": "REQ-MANIFEST-5",
2026-06-16T09:36:12.5024949Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-16T09:36:12.5025157Z       "requiredStages": [
2026-06-16T09:36:12.5025296Z         "doc",
2026-06-16T09:36:12.5025433Z         "impl",
2026-06-16T09:36:12.5025558Z         "unit"
2026-06-16T09:36:12.5025681Z       ],
2026-06-16T09:36:12.5025820Z       "stages": {
2026-06-16T09:36:12.5025944Z         "doc": {
2026-06-16T09:36:12.5026091Z           "complete": true,
2026-06-16T09:36:12.5026230Z           "evidence": [
2026-06-16T09:36:12.5026358Z             {
2026-06-16T09:36:12.5026626Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.5026764Z               "line": 83
2026-06-16T09:36:12.5026897Z             }
2026-06-16T09:36:12.5027026Z           ]
2026-06-16T09:36:12.5027156Z         },
2026-06-16T09:36:12.5027404Z         "impl": {
2026-06-16T09:36:12.5027550Z           "complete": true,
2026-06-16T09:36:12.5027697Z           "evidence": [
2026-06-16T09:36:12.5027827Z             {
2026-06-16T09:36:12.5028060Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.5028208Z               "line": 120
2026-06-16T09:36:12.5028336Z             }
2026-06-16T09:36:12.5028470Z           ]
2026-06-16T09:36:12.5028593Z         },
2026-06-16T09:36:12.5028714Z         "int": {
2026-06-16T09:36:12.5028876Z           "complete": false,
2026-06-16T09:36:12.5029105Z           "evidence": []
2026-06-16T09:36:12.5029242Z         },
2026-06-16T09:36:12.5029372Z         "unit": {
2026-06-16T09:36:12.5029538Z           "complete": true,
2026-06-16T09:36:12.5029677Z           "evidence": [
2026-06-16T09:36:12.5029814Z             {
2026-06-16T09:36:12.5030052Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-16T09:36:12.5030197Z               "line": 404
2026-06-16T09:36:12.5030340Z             },
2026-06-16T09:36:12.5030465Z             {
2026-06-16T09:36:12.5030694Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.5030845Z               "line": 1074
2026-06-16T09:36:12.5030980Z             },
2026-06-16T09:36:12.5031104Z             {
2026-06-16T09:36:12.5031328Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.5031474Z               "line": 1103
2026-06-16T09:36:12.5031595Z             },
2026-06-16T09:36:12.5031728Z             {
2026-06-16T09:36:12.5031958Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.5032100Z               "line": 1143
2026-06-16T09:36:12.5032234Z             },
2026-06-16T09:36:12.5032357Z             {
2026-06-16T09:36:12.5032583Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.5032723Z               "line": 1158
2026-06-16T09:36:12.5032857Z             }
2026-06-16T09:36:12.5032989Z           ]
2026-06-16T09:36:12.5033116Z         }
2026-06-16T09:36:12.5033256Z       }
2026-06-16T09:36:12.5033379Z     },
2026-06-16T09:36:12.5033503Z     {
2026-06-16T09:36:12.5033665Z       "id": "REQ-MANIFEST-6",
2026-06-16T09:36:12.5038605Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-16T09:36:12.5038787Z       "requiredStages": [
2026-06-16T09:36:12.5038925Z         "doc",
2026-06-16T09:36:12.5039163Z         "unit"
2026-06-16T09:36:12.5039288Z       ],
2026-06-16T09:36:12.5039426Z       "stages": {
2026-06-16T09:36:12.5039554Z         "doc": {
2026-06-16T09:36:12.5039707Z           "complete": true,
2026-06-16T09:36:12.5039850Z           "evidence": [
2026-06-16T09:36:12.5039975Z             {
2026-06-16T09:36:12.5040140Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.5040285Z               "line": 139
2026-06-16T09:36:12.5040411Z             }
2026-06-16T09:36:12.5040545Z           ]
2026-06-16T09:36:12.5040668Z         },
2026-06-16T09:36:12.5040800Z         "impl": {
2026-06-16T09:36:12.5040958Z           "complete": false,
2026-06-16T09:36:12.5041105Z           "evidence": []
2026-06-16T09:36:12.5041240Z         },
2026-06-16T09:36:12.5041487Z         "int": {
2026-06-16T09:36:12.5041635Z           "complete": false,
2026-06-16T09:36:12.5041782Z           "evidence": []
2026-06-16T09:36:12.5041907Z         },
2026-06-16T09:36:12.5042049Z         "unit": {
2026-06-16T09:36:12.5042298Z           "complete": true,
2026-06-16T09:36:12.5042441Z           "evidence": [
2026-06-16T09:36:12.5042560Z             {
2026-06-16T09:36:12.5042809Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-16T09:36:12.5042955Z               "line": 1180
2026-06-16T09:36:12.5043081Z             }
2026-06-16T09:36:12.5043209Z           ]
2026-06-16T09:36:12.5043331Z         }
2026-06-16T09:36:12.5043455Z       }
2026-06-16T09:36:12.5043582Z     },
2026-06-16T09:36:12.5043715Z     {
2026-06-16T09:36:12.5043874Z       "id": "REQ-MANIFEST-7",
2026-06-16T09:36:12.5050878Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-16T09:36:12.5051081Z       "requiredStages": [
2026-06-16T09:36:12.5051209Z         "doc",
2026-06-16T09:36:12.5051346Z         "impl",
2026-06-16T09:36:12.5051475Z         "unit"
2026-06-16T09:36:12.5051604Z       ],
2026-06-16T09:36:12.5051771Z       "stages": {
2026-06-16T09:36:12.5051914Z         "doc": {
2026-06-16T09:36:12.5052062Z           "complete": true,
2026-06-16T09:36:12.5052195Z           "evidence": [
2026-06-16T09:36:12.5052313Z             {
2026-06-16T09:36:12.5052514Z               "path": "docs/MANIFEST.md",
2026-06-16T09:36:12.5052662Z               "line": 34
2026-06-16T09:36:12.5052791Z             }
2026-06-16T09:36:12.5052910Z           ]
2026-06-16T09:36:12.5053035Z         },
2026-06-16T09:36:12.5053181Z         "impl": {
2026-06-16T09:36:12.5053336Z           "complete": true,
2026-06-16T09:36:12.5053496Z           "evidence": [
2026-06-16T09:36:12.5053631Z             {
2026-06-16T09:36:12.5053843Z               "path": "crates/spt/src/picker/data.rs",
2026-06-16T09:36:12.5053987Z               "line": 54
2026-06-16T09:36:12.5054114Z             }
2026-06-16T09:36:12.5054251Z           ]
2026-06-16T09:36:12.5054376Z         },
2026-06-16T09:36:12.5054518Z         "int": {
2026-06-16T09:36:12.5054677Z           "complete": false,
2026-06-16T09:36:12.5054818Z           "evidence": []
2026-06-16T09:36:12.5054939Z         },
2026-06-16T09:36:12.5055067Z         "unit": {
2026-06-16T09:36:12.5055214Z           "complete": true,
2026-06-16T09:36:12.5055363Z           "evidence": [
2026-06-16T09:36:12.5055500Z             {
2026-06-16T09:36:12.5055743Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.5055883Z               "line": 1357
2026-06-16T09:36:12.5056020Z             }
2026-06-16T09:36:12.5056149Z           ]
2026-06-16T09:36:12.5056279Z         }
2026-06-16T09:36:12.5056406Z       }
2026-06-16T09:36:12.5056530Z     },
2026-06-16T09:36:12.5056657Z     {
2026-06-16T09:36:12.5056803Z       "id": "REQ-MESH-1",
2026-06-16T09:36:12.5061816Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-16T09:36:12.5062220Z       "requiredStages": [
2026-06-16T09:36:12.5062355Z         "impl",
2026-06-16T09:36:12.5062493Z         "unit",
2026-06-16T09:36:12.5062617Z         "int"
2026-06-16T09:36:12.5062741Z       ],
2026-06-16T09:36:12.5062878Z       "stages": {
2026-06-16T09:36:12.5063013Z         "doc": {
2026-06-16T09:36:12.5063174Z           "complete": false,
2026-06-16T09:36:12.5063318Z           "evidence": []
2026-06-16T09:36:12.5063456Z         },
2026-06-16T09:36:12.5063581Z         "impl": {
2026-06-16T09:36:12.5063771Z           "complete": true,
2026-06-16T09:36:12.5063906Z           "evidence": [
2026-06-16T09:36:12.5064042Z             {
2026-06-16T09:36:12.5064272Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.5064413Z               "line": 845
2026-06-16T09:36:12.5064547Z             },
2026-06-16T09:36:12.5064669Z             {
2026-06-16T09:36:12.5064907Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5065050Z               "line": 38
2026-06-16T09:36:12.5065184Z             },
2026-06-16T09:36:12.5065308Z             {
2026-06-16T09:36:12.5065551Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5065698Z               "line": 161
2026-06-16T09:36:12.5065818Z             },
2026-06-16T09:36:12.5065951Z             {
2026-06-16T09:36:12.5066181Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5066333Z               "line": 206
2026-06-16T09:36:12.5066463Z             },
2026-06-16T09:36:12.5066595Z             {
2026-06-16T09:36:12.5066835Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5066975Z               "line": 57
2026-06-16T09:36:12.5067113Z             },
2026-06-16T09:36:12.5067241Z             {
2026-06-16T09:36:12.5067503Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5067645Z               "line": 24
2026-06-16T09:36:12.5067770Z             },
2026-06-16T09:36:12.5067903Z             {
2026-06-16T09:36:12.5068160Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5068303Z               "line": 142
2026-06-16T09:36:12.5068423Z             },
2026-06-16T09:36:12.5068561Z             {
2026-06-16T09:36:12.5068818Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5069024Z               "line": 162
2026-06-16T09:36:12.5069147Z             }
2026-06-16T09:36:12.5069271Z           ]
2026-06-16T09:36:12.5069420Z         },
2026-06-16T09:36:12.5069543Z         "int": {
2026-06-16T09:36:12.5069702Z           "complete": true,
2026-06-16T09:36:12.5069852Z           "evidence": [
2026-06-16T09:36:12.5069976Z             {
2026-06-16T09:36:12.5070224Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-16T09:36:12.5070367Z               "line": 67
2026-06-16T09:36:12.5070510Z             },
2026-06-16T09:36:12.5070635Z             {
2026-06-16T09:36:12.5070886Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-16T09:36:12.5071025Z               "line": 93
2026-06-16T09:36:12.5071168Z             },
2026-06-16T09:36:12.5071298Z             {
2026-06-16T09:36:12.5071535Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-16T09:36:12.5071683Z               "line": 117
2026-06-16T09:36:12.5071821Z             },
2026-06-16T09:36:12.5071947Z             {
2026-06-16T09:36:12.5072197Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-16T09:36:12.5072343Z               "line": 134
2026-06-16T09:36:12.5072586Z             }
2026-06-16T09:36:12.5072710Z           ]
2026-06-16T09:36:12.5072829Z         },
2026-06-16T09:36:12.5072972Z         "unit": {
2026-06-16T09:36:12.5073128Z           "complete": true,
2026-06-16T09:36:12.5073377Z           "evidence": [
2026-06-16T09:36:12.5073502Z             {
2026-06-16T09:36:12.5073744Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5073883Z               "line": 427
2026-06-16T09:36:12.5074006Z             },
2026-06-16T09:36:12.5074131Z             {
2026-06-16T09:36:12.5074392Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5074532Z               "line": 376
2026-06-16T09:36:12.5074660Z             },
2026-06-16T09:36:12.5074795Z             {
2026-06-16T09:36:12.5075035Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5075187Z               "line": 412
2026-06-16T09:36:12.5075309Z             },
2026-06-16T09:36:12.5075429Z             {
2026-06-16T09:36:12.5075686Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5075835Z               "line": 427
2026-06-16T09:36:12.5075962Z             },
2026-06-16T09:36:12.5076088Z             {
2026-06-16T09:36:12.5076349Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5076497Z               "line": 438
2026-06-16T09:36:12.5076635Z             },
2026-06-16T09:36:12.5076774Z             {
2026-06-16T09:36:12.5077023Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5077164Z               "line": 449
2026-06-16T09:36:12.5077289Z             },
2026-06-16T09:36:12.5077423Z             {
2026-06-16T09:36:12.5077679Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5077824Z               "line": 460
2026-06-16T09:36:12.5077947Z             },
2026-06-16T09:36:12.5078072Z             {
2026-06-16T09:36:12.5078330Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5078478Z               "line": 496
2026-06-16T09:36:12.5078606Z             },
2026-06-16T09:36:12.5078730Z             {
2026-06-16T09:36:12.5079059Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5079207Z               "line": 519
2026-06-16T09:36:12.5079332Z             },
2026-06-16T09:36:12.5079469Z             {
2026-06-16T09:36:12.5079717Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5079855Z               "line": 546
2026-06-16T09:36:12.5079980Z             }
2026-06-16T09:36:12.5080103Z           ]
2026-06-16T09:36:12.5080228Z         }
2026-06-16T09:36:12.5080351Z       }
2026-06-16T09:36:12.5080478Z     },
2026-06-16T09:36:12.5080608Z     {
2026-06-16T09:36:12.5080755Z       "id": "REQ-MESH-2",
2026-06-16T09:36:12.5086856Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-16T09:36:12.5087057Z       "requiredStages": [
2026-06-16T09:36:12.5087185Z         "impl",
2026-06-16T09:36:12.5087325Z         "unit",
2026-06-16T09:36:12.5087448Z         "int"
2026-06-16T09:36:12.5087573Z       ],
2026-06-16T09:36:12.5087706Z       "stages": {
2026-06-16T09:36:12.5088016Z         "doc": {
2026-06-16T09:36:12.5088167Z           "complete": false,
2026-06-16T09:36:12.5088314Z           "evidence": []
2026-06-16T09:36:12.5088431Z         },
2026-06-16T09:36:12.5088566Z         "impl": {
2026-06-16T09:36:12.5088832Z           "complete": true,
2026-06-16T09:36:12.5089066Z           "evidence": [
2026-06-16T09:36:12.5089195Z             {
2026-06-16T09:36:12.5089442Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.5089581Z               "line": 734
2026-06-16T09:36:12.5089710Z             },
2026-06-16T09:36:12.5089844Z             {
2026-06-16T09:36:12.5090082Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.5090239Z               "line": 118
2026-06-16T09:36:12.5090363Z             },
2026-06-16T09:36:12.5090502Z             {
2026-06-16T09:36:12.5090731Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.5090874Z               "line": 347
2026-06-16T09:36:12.5090991Z             },
2026-06-16T09:36:12.5091130Z             {
2026-06-16T09:36:12.5091372Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.5091516Z               "line": 389
2026-06-16T09:36:12.5091644Z             },
2026-06-16T09:36:12.5091774Z             {
2026-06-16T09:36:12.5092012Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.5092155Z               "line": 403
2026-06-16T09:36:12.5092278Z             },
2026-06-16T09:36:12.5092408Z             {
2026-06-16T09:36:12.5092627Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.5092776Z               "line": 492
2026-06-16T09:36:12.5092903Z             },
2026-06-16T09:36:12.5093024Z             {
2026-06-16T09:36:12.5093251Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.5093403Z               "line": 507
2026-06-16T09:36:12.5093529Z             },
2026-06-16T09:36:12.5093649Z             {
2026-06-16T09:36:12.5093882Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.5094026Z               "line": 534
2026-06-16T09:36:12.5094159Z             },
2026-06-16T09:36:12.5094283Z             {
2026-06-16T09:36:12.5094530Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5094689Z               "line": 207
2026-06-16T09:36:12.5094821Z             },
2026-06-16T09:36:12.5094956Z             {
2026-06-16T09:36:12.5095198Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5095333Z               "line": 755
2026-06-16T09:36:12.5095456Z             },
2026-06-16T09:36:12.5095590Z             {
2026-06-16T09:36:12.5095837Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5095986Z               "line": 816
2026-06-16T09:36:12.5096127Z             },
2026-06-16T09:36:12.5096261Z             {
2026-06-16T09:36:12.5096501Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5096645Z               "line": 869
2026-06-16T09:36:12.5096787Z             },
2026-06-16T09:36:12.5096912Z             {
2026-06-16T09:36:12.5097150Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5097289Z               "line": 891
2026-06-16T09:36:12.5097417Z             },
2026-06-16T09:36:12.5097556Z             {
2026-06-16T09:36:12.5097779Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.5097927Z               "line": 122
2026-06-16T09:36:12.5098051Z             },
2026-06-16T09:36:12.5098167Z             {
2026-06-16T09:36:12.5098380Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5098524Z               "line": 44
2026-06-16T09:36:12.5098661Z             },
2026-06-16T09:36:12.5098799Z             {
2026-06-16T09:36:12.5099087Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5099231Z               "line": 184
2026-06-16T09:36:12.5099358Z             },
2026-06-16T09:36:12.5099498Z             {
2026-06-16T09:36:12.5099702Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5099988Z               "line": 211
2026-06-16T09:36:12.5100132Z             },
2026-06-16T09:36:12.5100251Z             {
2026-06-16T09:36:12.5100470Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5100710Z               "line": 251
2026-06-16T09:36:12.5100847Z             },
2026-06-16T09:36:12.5100966Z             {
2026-06-16T09:36:12.5101185Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5101330Z               "line": 275
2026-06-16T09:36:12.5101462Z             },
2026-06-16T09:36:12.5101599Z             {
2026-06-16T09:36:12.5101810Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5101947Z               "line": 289
2026-06-16T09:36:12.5102076Z             },
2026-06-16T09:36:12.5102199Z             {
2026-06-16T09:36:12.5102415Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5102557Z               "line": 300
2026-06-16T09:36:12.5102692Z             },
2026-06-16T09:36:12.5102820Z             {
2026-06-16T09:36:12.5103040Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5103187Z               "line": 313
2026-06-16T09:36:12.5103317Z             }
2026-06-16T09:36:12.5103454Z           ]
2026-06-16T09:36:12.5103574Z         },
2026-06-16T09:36:12.5103716Z         "int": {
2026-06-16T09:36:12.5103872Z           "complete": true,
2026-06-16T09:36:12.5104010Z           "evidence": [
2026-06-16T09:36:12.5104137Z             {
2026-06-16T09:36:12.5104395Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-16T09:36:12.5104538Z               "line": 116
2026-06-16T09:36:12.5104672Z             },
2026-06-16T09:36:12.5104800Z             {
2026-06-16T09:36:12.5105043Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-16T09:36:12.5105197Z               "line": 181
2026-06-16T09:36:12.5105320Z             }
2026-06-16T09:36:12.5105453Z           ]
2026-06-16T09:36:12.5105583Z         },
2026-06-16T09:36:12.5105720Z         "unit": {
2026-06-16T09:36:12.5105860Z           "complete": true,
2026-06-16T09:36:12.5106002Z           "evidence": [
2026-06-16T09:36:12.5106136Z             {
2026-06-16T09:36:12.5106369Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5106518Z               "line": 999
2026-06-16T09:36:12.5106640Z             },
2026-06-16T09:36:12.5106764Z             {
2026-06-16T09:36:12.5107004Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5107148Z               "line": 1016
2026-06-16T09:36:12.5107281Z             },
2026-06-16T09:36:12.5107405Z             {
2026-06-16T09:36:12.5107643Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5107787Z               "line": 1024
2026-06-16T09:36:12.5107910Z             },
2026-06-16T09:36:12.5108049Z             {
2026-06-16T09:36:12.5108277Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5108436Z               "line": 1048
2026-06-16T09:36:12.5108563Z             },
2026-06-16T09:36:12.5108688Z             {
2026-06-16T09:36:12.5109022Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5109164Z               "line": 1499
2026-06-16T09:36:12.5109311Z             },
2026-06-16T09:36:12.5109444Z             {
2026-06-16T09:36:12.5109657Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5109801Z               "line": 347
2026-06-16T09:36:12.5109943Z             },
2026-06-16T09:36:12.5110077Z             {
2026-06-16T09:36:12.5110286Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5110430Z               "line": 370
2026-06-16T09:36:12.5110567Z             },
2026-06-16T09:36:12.5110687Z             {
2026-06-16T09:36:12.5110901Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5111045Z               "line": 407
2026-06-16T09:36:12.5111183Z             },
2026-06-16T09:36:12.5111426Z             {
2026-06-16T09:36:12.5111632Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5111769Z               "line": 431
2026-06-16T09:36:12.5111904Z             },
2026-06-16T09:36:12.5112027Z             {
2026-06-16T09:36:12.5112342Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5112483Z               "line": 483
2026-06-16T09:36:12.5112608Z             },
2026-06-16T09:36:12.5112736Z             {
2026-06-16T09:36:12.5112947Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5113088Z               "line": 499
2026-06-16T09:36:12.5113228Z             },
2026-06-16T09:36:12.5113357Z             {
2026-06-16T09:36:12.5113567Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5113714Z               "line": 514
2026-06-16T09:36:12.5113848Z             },
2026-06-16T09:36:12.5113971Z             {
2026-06-16T09:36:12.5114182Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5114328Z               "line": 531
2026-06-16T09:36:12.5114461Z             }
2026-06-16T09:36:12.5114598Z           ]
2026-06-16T09:36:12.5114721Z         }
2026-06-16T09:36:12.5114851Z       }
2026-06-16T09:36:12.5114969Z     },
2026-06-16T09:36:12.5115108Z     {
2026-06-16T09:36:12.5115260Z       "id": "REQ-MESH-3",
2026-06-16T09:36:12.5119249Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-16T09:36:12.5121919Z       "requiredStages": [
2026-06-16T09:36:12.5122086Z         "impl",
2026-06-16T09:36:12.5122248Z         "unit",
2026-06-16T09:36:12.5122387Z         "int"
2026-06-16T09:36:12.5122507Z       ],
2026-06-16T09:36:12.5122648Z       "stages": {
2026-06-16T09:36:12.5122771Z         "doc": {
2026-06-16T09:36:12.5122934Z           "complete": false,
2026-06-16T09:36:12.5123106Z           "evidence": []
2026-06-16T09:36:12.5123230Z         },
2026-06-16T09:36:12.5123372Z         "impl": {
2026-06-16T09:36:12.5123531Z           "complete": true,
2026-06-16T09:36:12.5123672Z           "evidence": [
2026-06-16T09:36:12.5123798Z             {
2026-06-16T09:36:12.5124036Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.5124188Z               "line": 641
2026-06-16T09:36:12.5124316Z             }
2026-06-16T09:36:12.5124442Z           ]
2026-06-16T09:36:12.5124559Z         },
2026-06-16T09:36:12.5124689Z         "int": {
2026-06-16T09:36:12.5124846Z           "complete": true,
2026-06-16T09:36:12.5124992Z           "evidence": [
2026-06-16T09:36:12.5125121Z             {
2026-06-16T09:36:12.5125353Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-16T09:36:12.5125491Z               "line": 373
2026-06-16T09:36:12.5125615Z             },
2026-06-16T09:36:12.5125749Z             {
2026-06-16T09:36:12.5125983Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-16T09:36:12.5126131Z               "line": 436
2026-06-16T09:36:12.5126264Z             }
2026-06-16T09:36:12.5126393Z           ]
2026-06-16T09:36:12.5126516Z         },
2026-06-16T09:36:12.5126646Z         "unit": {
2026-06-16T09:36:12.5126798Z           "complete": true,
2026-06-16T09:36:12.5126942Z           "evidence": [
2026-06-16T09:36:12.5127079Z             {
2026-06-16T09:36:12.5127304Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.5127451Z               "line": 910
2026-06-16T09:36:12.5127576Z             }
2026-06-16T09:36:12.5127695Z           ]
2026-06-16T09:36:12.5127822Z         }
2026-06-16T09:36:12.5127950Z       }
2026-06-16T09:36:12.5128230Z     },
2026-06-16T09:36:12.5128350Z     {
2026-06-16T09:36:12.5128501Z       "id": "REQ-MESH-4",
2026-06-16T09:36:12.5133861Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-16T09:36:12.5134162Z       "requiredStages": [
2026-06-16T09:36:12.5134290Z         "impl",
2026-06-16T09:36:12.5134453Z         "unit",
2026-06-16T09:36:12.5134576Z         "int"
2026-06-16T09:36:12.5134696Z       ],
2026-06-16T09:36:12.5134829Z       "stages": {
2026-06-16T09:36:12.5134955Z         "doc": {
2026-06-16T09:36:12.5135115Z           "complete": false,
2026-06-16T09:36:12.5135279Z           "evidence": []
2026-06-16T09:36:12.5135406Z         },
2026-06-16T09:36:12.5135538Z         "impl": {
2026-06-16T09:36:12.5135690Z           "complete": true,
2026-06-16T09:36:12.5135831Z           "evidence": [
2026-06-16T09:36:12.5135956Z             {
2026-06-16T09:36:12.5136228Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-16T09:36:12.5136362Z               "line": 33
2026-06-16T09:36:12.5136480Z             },
2026-06-16T09:36:12.5136600Z             {
2026-06-16T09:36:12.5136843Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5136982Z               "line": 68
2026-06-16T09:36:12.5137119Z             },
2026-06-16T09:36:12.5137249Z             {
2026-06-16T09:36:12.5137492Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5137639Z               "line": 111
2026-06-16T09:36:12.5137763Z             },
2026-06-16T09:36:12.5137893Z             {
2026-06-16T09:36:12.5138117Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5138269Z               "line": 462
2026-06-16T09:36:12.5138406Z             },
2026-06-16T09:36:12.5138525Z             {
2026-06-16T09:36:12.5138771Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5138910Z               "line": 711
2026-06-16T09:36:12.5139124Z             },
2026-06-16T09:36:12.5139248Z             {
2026-06-16T09:36:12.5139496Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5139638Z               "line": 725
2026-06-16T09:36:12.5139763Z             },
2026-06-16T09:36:12.5139901Z             {
2026-06-16T09:36:12.5140107Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.5140259Z               "line": 132
2026-06-16T09:36:12.5140393Z             },
2026-06-16T09:36:12.5140511Z             {
2026-06-16T09:36:12.5140736Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-16T09:36:12.5140877Z               "line": 26
2026-06-16T09:36:12.5141020Z             },
2026-06-16T09:36:12.5141143Z             {
2026-06-16T09:36:12.5141376Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-16T09:36:12.5141528Z               "line": 97
2026-06-16T09:36:12.5141662Z             },
2026-06-16T09:36:12.5141776Z             {
2026-06-16T09:36:12.5142001Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-16T09:36:12.5142148Z               "line": 119
2026-06-16T09:36:12.5142267Z             },
2026-06-16T09:36:12.5142401Z             {
2026-06-16T09:36:12.5142611Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.5142753Z               "line": 82
2026-06-16T09:36:12.5142892Z             },
2026-06-16T09:36:12.5143021Z             {
2026-06-16T09:36:12.5143369Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.5143512Z               "line": 111
2026-06-16T09:36:12.5143651Z             },
2026-06-16T09:36:12.5143783Z             {
2026-06-16T09:36:12.5144092Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.5144236Z               "line": 232
2026-06-16T09:36:12.5144355Z             },
2026-06-16T09:36:12.5144492Z             {
2026-06-16T09:36:12.5144703Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.5144851Z               "line": 245
2026-06-16T09:36:12.5144989Z             },
2026-06-16T09:36:12.5145113Z             {
2026-06-16T09:36:12.5145303Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5145446Z               "line": 4344
2026-06-16T09:36:12.5145580Z             }
2026-06-16T09:36:12.5145699Z           ]
2026-06-16T09:36:12.5145834Z         },
2026-06-16T09:36:12.5145971Z         "int": {
2026-06-16T09:36:12.5146118Z           "complete": true,
2026-06-16T09:36:12.5146260Z           "evidence": [
2026-06-16T09:36:12.5146382Z             {
2026-06-16T09:36:12.5146607Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-16T09:36:12.5146750Z               "line": 98
2026-06-16T09:36:12.5146889Z             },
2026-06-16T09:36:12.5147021Z             {
2026-06-16T09:36:12.5147251Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-16T09:36:12.5147398Z               "line": 140
2026-06-16T09:36:12.5147523Z             }
2026-06-16T09:36:12.5147660Z           ]
2026-06-16T09:36:12.5147785Z         },
2026-06-16T09:36:12.5147923Z         "unit": {
2026-06-16T09:36:12.5148077Z           "complete": true,
2026-06-16T09:36:12.5148218Z           "evidence": [
2026-06-16T09:36:12.5148362Z             {
2026-06-16T09:36:12.5148610Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-16T09:36:12.5148758Z               "line": 178
2026-06-16T09:36:12.5148885Z             },
2026-06-16T09:36:12.5149108Z             {
2026-06-16T09:36:12.5149365Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-16T09:36:12.5149507Z               "line": 242
2026-06-16T09:36:12.5149640Z             },
2026-06-16T09:36:12.5149765Z             {
2026-06-16T09:36:12.5150013Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5150165Z               "line": 1079
2026-06-16T09:36:12.5150289Z             },
2026-06-16T09:36:12.5150423Z             {
2026-06-16T09:36:12.5150657Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5150804Z               "line": 1109
2026-06-16T09:36:12.5150934Z             },
2026-06-16T09:36:12.5151057Z             {
2026-06-16T09:36:12.5151292Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-16T09:36:12.5151437Z               "line": 1129
2026-06-16T09:36:12.5151556Z             },
2026-06-16T09:36:12.5151680Z             {
2026-06-16T09:36:12.5151931Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-16T09:36:12.5152083Z               "line": 602
2026-06-16T09:36:12.5152217Z             },
2026-06-16T09:36:12.5152341Z             {
2026-06-16T09:36:12.5152566Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-16T09:36:12.5152718Z               "line": 148
2026-06-16T09:36:12.5152842Z             },
2026-06-16T09:36:12.5152975Z             {
2026-06-16T09:36:12.5153195Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-16T09:36:12.5153338Z               "line": 169
2026-06-16T09:36:12.5153466Z             },
2026-06-16T09:36:12.5153591Z             {
2026-06-16T09:36:12.5153816Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-16T09:36:12.5153962Z               "line": 181
2026-06-16T09:36:12.5154091Z             },
2026-06-16T09:36:12.5154216Z             {
2026-06-16T09:36:12.5154433Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-16T09:36:12.5154578Z               "line": 202
2026-06-16T09:36:12.5154830Z             },
2026-06-16T09:36:12.5154957Z             {
2026-06-16T09:36:12.5155168Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.5155310Z               "line": 375
2026-06-16T09:36:12.5155430Z             },
2026-06-16T09:36:12.5155658Z             {
2026-06-16T09:36:12.5155873Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.5156007Z               "line": 407
2026-06-16T09:36:12.5156141Z             },
2026-06-16T09:36:12.5156264Z             {
2026-06-16T09:36:12.5156447Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5156592Z               "line": 8878
2026-06-16T09:36:12.5156726Z             }
2026-06-16T09:36:12.5156852Z           ]
2026-06-16T09:36:12.5156985Z         }
2026-06-16T09:36:12.5157115Z       }
2026-06-16T09:36:12.5157243Z     },
2026-06-16T09:36:12.5157377Z     {
2026-06-16T09:36:12.5157529Z       "id": "REQ-MESH-5",
2026-06-16T09:36:12.5160831Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-16T09:36:12.5161021Z       "requiredStages": [
2026-06-16T09:36:12.5161155Z         "impl",
2026-06-16T09:36:12.5161288Z         "unit"
2026-06-16T09:36:12.5161416Z       ],
2026-06-16T09:36:12.5161551Z       "stages": {
2026-06-16T09:36:12.5161693Z         "doc": {
2026-06-16T09:36:12.5161843Z           "complete": false,
2026-06-16T09:36:12.5161993Z           "evidence": []
2026-06-16T09:36:12.5162111Z         },
2026-06-16T09:36:12.5162254Z         "impl": {
2026-06-16T09:36:12.5162400Z           "complete": true,
2026-06-16T09:36:12.5162544Z           "evidence": [
2026-06-16T09:36:12.5162705Z             {
2026-06-16T09:36:12.5162940Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5163087Z               "line": 61
2026-06-16T09:36:12.5163216Z             },
2026-06-16T09:36:12.5163353Z             {
2026-06-16T09:36:12.5163621Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5163765Z               "line": 109
2026-06-16T09:36:12.5163893Z             },
2026-06-16T09:36:12.5164017Z             {
2026-06-16T09:36:12.5164241Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.5164376Z               "line": 104
2026-06-16T09:36:12.5164513Z             },
2026-06-16T09:36:12.5164637Z             {
2026-06-16T09:36:12.5164865Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.5165017Z               "line": 105
2026-06-16T09:36:12.5165147Z             },
2026-06-16T09:36:12.5165274Z             {
2026-06-16T09:36:12.5165518Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5165666Z               "line": 85
2026-06-16T09:36:12.5165800Z             },
2026-06-16T09:36:12.5165923Z             {
2026-06-16T09:36:12.5166180Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5166324Z               "line": 250
2026-06-16T09:36:12.5166457Z             },
2026-06-16T09:36:12.5166576Z             {
2026-06-16T09:36:12.5166819Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5166964Z               "line": 314
2026-06-16T09:36:12.5167081Z             },
2026-06-16T09:36:12.5167218Z             {
2026-06-16T09:36:12.5167465Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5167613Z               "line": 715
2026-06-16T09:36:12.5167737Z             },
2026-06-16T09:36:12.5167855Z             {
2026-06-16T09:36:12.5168065Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.5168209Z               "line": 101
2026-06-16T09:36:12.5168471Z             },
2026-06-16T09:36:12.5168600Z             {
2026-06-16T09:36:12.5168809Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5169033Z               "line": 193
2026-06-16T09:36:12.5169172Z             }
2026-06-16T09:36:12.5169448Z           ]
2026-06-16T09:36:12.5169564Z         },
2026-06-16T09:36:12.5169701Z         "int": {
2026-06-16T09:36:12.5169850Z           "complete": false,
2026-06-16T09:36:12.5169996Z           "evidence": []
2026-06-16T09:36:12.5170129Z         },
2026-06-16T09:36:12.5170266Z         "unit": {
2026-06-16T09:36:12.5170412Z           "complete": true,
2026-06-16T09:36:12.5170557Z           "evidence": [
2026-06-16T09:36:12.5170675Z             {
2026-06-16T09:36:12.5170919Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5171061Z               "line": 957
2026-06-16T09:36:12.5171181Z             },
2026-06-16T09:36:12.5171304Z             {
2026-06-16T09:36:12.5171538Z               "path": "crates/spt-store/src/roster.rs",
2026-06-16T09:36:12.5171691Z               "line": 462
2026-06-16T09:36:12.5171815Z             }
2026-06-16T09:36:12.5171967Z           ]
2026-06-16T09:36:12.5172159Z         }
2026-06-16T09:36:12.5172340Z       }
2026-06-16T09:36:12.5172544Z     },
2026-06-16T09:36:12.5172730Z     {
2026-06-16T09:36:12.5172936Z       "id": "REQ-MESH-6",
2026-06-16T09:36:12.5177510Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-16T09:36:12.5177798Z       "requiredStages": [
2026-06-16T09:36:12.5178015Z         "impl",
2026-06-16T09:36:12.5178211Z         "unit"
2026-06-16T09:36:12.5178425Z       ],
2026-06-16T09:36:12.5178654Z       "stages": {
2026-06-16T09:36:12.5178902Z         "doc": {
2026-06-16T09:36:12.5179241Z           "complete": false,
2026-06-16T09:36:12.5179499Z           "evidence": []
2026-06-16T09:36:12.5179718Z         },
2026-06-16T09:36:12.5179946Z         "impl": {
2026-06-16T09:36:12.5180237Z           "complete": true,
2026-06-16T09:36:12.5180472Z           "evidence": [
2026-06-16T09:36:12.5180660Z             {
2026-06-16T09:36:12.5180967Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5181211Z               "line": 3867
2026-06-16T09:36:12.5181407Z             }
2026-06-16T09:36:12.5181616Z           ]
2026-06-16T09:36:12.5181808Z         },
2026-06-16T09:36:12.5182051Z         "int": {
2026-06-16T09:36:12.5182309Z           "complete": false,
2026-06-16T09:36:12.5182570Z           "evidence": []
2026-06-16T09:36:12.5182804Z         },
2026-06-16T09:36:12.5183010Z         "unit": {
2026-06-16T09:36:12.5183256Z           "complete": true,
2026-06-16T09:36:12.5183487Z           "evidence": [
2026-06-16T09:36:12.5183698Z             {
2026-06-16T09:36:12.5183989Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5184203Z               "line": 9411
2026-06-16T09:36:12.5195722Z             },
2026-06-16T09:36:12.5196017Z             {
2026-06-16T09:36:12.5196380Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5196640Z               "line": 9438
2026-06-16T09:36:12.5196869Z             },
2026-06-16T09:36:12.5197080Z             {
2026-06-16T09:36:12.5197399Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5197656Z               "line": 9462
2026-06-16T09:36:12.5197870Z             }
2026-06-16T09:36:12.5198100Z           ]
2026-06-16T09:36:12.5198325Z         }
2026-06-16T09:36:12.5198547Z       }
2026-06-16T09:36:12.5198757Z     },
2026-06-16T09:36:12.5199047Z     {
2026-06-16T09:36:12.5199307Z       "id": "REQ-MIGRATE-1",
2026-06-16T09:36:12.5199913Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-16T09:36:12.5200437Z       "requiredStages": [],
2026-06-16T09:36:12.5200662Z       "stages": {
2026-06-16T09:36:12.5200891Z         "doc": {
2026-06-16T09:36:12.5201153Z           "complete": false,
2026-06-16T09:36:12.5201415Z           "evidence": []
2026-06-16T09:36:12.5201829Z         },
2026-06-16T09:36:12.5202050Z         "impl": {
2026-06-16T09:36:12.5202299Z           "complete": false,
2026-06-16T09:36:12.5202537Z           "evidence": []
2026-06-16T09:36:12.5202751Z         },
2026-06-16T09:36:12.5202957Z         "int": {
2026-06-16T09:36:12.5203214Z           "complete": false,
2026-06-16T09:36:12.5203453Z           "evidence": []
2026-06-16T09:36:12.5203667Z         },
2026-06-16T09:36:12.5203885Z         "unit": {
2026-06-16T09:36:12.5204145Z           "complete": false,
2026-06-16T09:36:12.5204410Z           "evidence": []
2026-06-16T09:36:12.5204607Z         }
2026-06-16T09:36:12.5204823Z       }
2026-06-16T09:36:12.5205085Z     },
2026-06-16T09:36:12.5205298Z     {
2026-06-16T09:36:12.5205542Z       "id": "REQ-MSG-1",
2026-06-16T09:36:12.5207406Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-16T09:36:12.5207726Z       "requiredStages": [
2026-06-16T09:36:12.5207945Z         "impl",
2026-06-16T09:36:12.5208163Z         "unit",
2026-06-16T09:36:12.5208364Z         "int"
2026-06-16T09:36:12.5208570Z       ],
2026-06-16T09:36:12.5208807Z       "stages": {
2026-06-16T09:36:12.5209112Z         "doc": {
2026-06-16T09:36:12.5209412Z           "complete": false,
2026-06-16T09:36:12.5209672Z           "evidence": []
2026-06-16T09:36:12.5209897Z         },
2026-06-16T09:36:12.5210139Z         "impl": {
2026-06-16T09:36:12.5210386Z           "complete": true,
2026-06-16T09:36:12.5210635Z           "evidence": [
2026-06-16T09:36:12.5210864Z             {
2026-06-16T09:36:12.5211227Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5211466Z               "line": 28
2026-06-16T09:36:12.5211704Z             },
2026-06-16T09:36:12.5211912Z             {
2026-06-16T09:36:12.5212265Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5212511Z               "line": 94
2026-06-16T09:36:12.5212716Z             },
2026-06-16T09:36:12.5212939Z             {
2026-06-16T09:36:12.5213297Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5213545Z               "line": 127
2026-06-16T09:36:12.5213779Z             },
2026-06-16T09:36:12.5213999Z             {
2026-06-16T09:36:12.5214376Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5214619Z               "line": 149
2026-06-16T09:36:12.5214841Z             },
2026-06-16T09:36:12.5215055Z             {
2026-06-16T09:36:12.5215439Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5215692Z               "line": 174
2026-06-16T09:36:12.5215912Z             },
2026-06-16T09:36:12.5216145Z             {
2026-06-16T09:36:12.5216517Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-16T09:36:12.5216774Z               "line": 18
2026-06-16T09:36:12.5216994Z             },
2026-06-16T09:36:12.5217220Z             {
2026-06-16T09:36:12.5217563Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.5217813Z               "line": 13
2026-06-16T09:36:12.5218037Z             },
2026-06-16T09:36:12.5218238Z             {
2026-06-16T09:36:12.5218581Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.5218816Z               "line": 62
2026-06-16T09:36:12.5219106Z             },
2026-06-16T09:36:12.5219411Z             {
2026-06-16T09:36:12.5219826Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5220072Z               "line": 13
2026-06-16T09:36:12.5220279Z             }
2026-06-16T09:36:12.5220495Z           ]
2026-06-16T09:36:12.5220699Z         },
2026-06-16T09:36:12.5220937Z         "int": {
2026-06-16T09:36:12.5221200Z           "complete": true,
2026-06-16T09:36:12.5221668Z           "evidence": [
2026-06-16T09:36:12.5221887Z             {
2026-06-16T09:36:12.5222350Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-16T09:36:12.5222584Z               "line": 9
2026-06-16T09:36:12.5222977Z             },
2026-06-16T09:36:12.5223204Z             {
2026-06-16T09:36:12.5223668Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-16T09:36:12.5223891Z               "line": 56
2026-06-16T09:36:12.5224115Z             },
2026-06-16T09:36:12.5224316Z             {
2026-06-16T09:36:12.5224763Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-16T09:36:12.5225015Z               "line": 113
2026-06-16T09:36:12.5225241Z             }
2026-06-16T09:36:12.5225458Z           ]
2026-06-16T09:36:12.5225671Z         },
2026-06-16T09:36:12.5225919Z         "unit": {
2026-06-16T09:36:12.5226187Z           "complete": true,
2026-06-16T09:36:12.5226433Z           "evidence": [
2026-06-16T09:36:12.5226648Z             {
2026-06-16T09:36:12.5227020Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5227259Z               "line": 203
2026-06-16T09:36:12.5227469Z             },
2026-06-16T09:36:12.5227683Z             {
2026-06-16T09:36:12.5228037Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5228292Z               "line": 232
2026-06-16T09:36:12.5228526Z             },
2026-06-16T09:36:12.5228712Z             {
2026-06-16T09:36:12.5229175Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5229427Z               "line": 277
2026-06-16T09:36:12.5229656Z             },
2026-06-16T09:36:12.5229870Z             {
2026-06-16T09:36:12.5230233Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5230480Z               "line": 300
2026-06-16T09:36:12.5230680Z             },
2026-06-16T09:36:12.5230877Z             {
2026-06-16T09:36:12.5231236Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-16T09:36:12.5232323Z               "line": 325
2026-06-16T09:36:12.5232567Z             },
2026-06-16T09:36:12.5232785Z             {
2026-06-16T09:36:12.5233158Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-16T09:36:12.5233394Z               "line": 204
2026-06-16T09:36:12.5233659Z             },
2026-06-16T09:36:12.5233869Z             {
2026-06-16T09:36:12.5234251Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-16T09:36:12.5234494Z               "line": 237
2026-06-16T09:36:12.5234712Z             },
2026-06-16T09:36:12.5234942Z             {
2026-06-16T09:36:12.5235328Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-16T09:36:12.5235581Z               "line": 251
2026-06-16T09:36:12.5235806Z             },
2026-06-16T09:36:12.5236027Z             {
2026-06-16T09:36:12.5236398Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-16T09:36:12.5236650Z               "line": 263
2026-06-16T09:36:12.5236884Z             },
2026-06-16T09:36:12.5237090Z             {
2026-06-16T09:36:12.5237456Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.5237700Z               "line": 162
2026-06-16T09:36:12.5237938Z             },
2026-06-16T09:36:12.5238152Z             {
2026-06-16T09:36:12.5238496Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-16T09:36:12.5238767Z               "line": 242
2026-06-16T09:36:12.5239054Z             },
2026-06-16T09:36:12.5239286Z             {
2026-06-16T09:36:12.5239631Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5239882Z               "line": 134
2026-06-16T09:36:12.5240110Z             },
2026-06-16T09:36:12.5240326Z             {
2026-06-16T09:36:12.5240659Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5240885Z               "line": 153
2026-06-16T09:36:12.5241102Z             }
2026-06-16T09:36:12.5241319Z           ]
2026-06-16T09:36:12.5241539Z         }
2026-06-16T09:36:12.5241748Z       }
2026-06-16T09:36:12.5241972Z     },
2026-06-16T09:36:12.5242425Z     {
2026-06-16T09:36:12.5242677Z       "id": "REQ-MSG-2",
2026-06-16T09:36:12.5243742Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-16T09:36:12.5244011Z       "requiredStages": [
2026-06-16T09:36:12.5244425Z         "impl",
2026-06-16T09:36:12.5244633Z         "unit"
2026-06-16T09:36:12.5244849Z       ],
2026-06-16T09:36:12.5245078Z       "stages": {
2026-06-16T09:36:12.5245292Z         "doc": {
2026-06-16T09:36:12.5245564Z           "complete": false,
2026-06-16T09:36:12.5245817Z           "evidence": []
2026-06-16T09:36:12.5246032Z         },
2026-06-16T09:36:12.5246256Z         "impl": {
2026-06-16T09:36:12.5246531Z           "complete": true,
2026-06-16T09:36:12.5246791Z           "evidence": [
2026-06-16T09:36:12.5247006Z             {
2026-06-16T09:36:12.5247335Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5247573Z               "line": 11
2026-06-16T09:36:12.5247797Z             },
2026-06-16T09:36:12.5248021Z             {
2026-06-16T09:36:12.5248364Z               "path": "crates/spt/src/main.rs",
2026-06-16T09:36:12.5248604Z               "line": 8
2026-06-16T09:36:12.5248823Z             }
2026-06-16T09:36:12.5249142Z           ]
2026-06-16T09:36:12.5249388Z         },
2026-06-16T09:36:12.5249647Z         "int": {
2026-06-16T09:36:12.5249985Z           "complete": false,
2026-06-16T09:36:12.5250252Z           "evidence": []
2026-06-16T09:36:12.5250510Z         },
2026-06-16T09:36:12.5251154Z         "unit": {
2026-06-16T09:36:12.5251748Z           "complete": true,
2026-06-16T09:36:12.5252433Z           "evidence": [
2026-06-16T09:36:12.5253024Z             {
2026-06-16T09:36:12.5253673Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5254491Z               "line": 6687
2026-06-16T09:36:12.5255123Z             },
2026-06-16T09:36:12.5255657Z             {
2026-06-16T09:36:12.5256278Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5257134Z               "line": 6729
2026-06-16T09:36:12.5257799Z             },
2026-06-16T09:36:12.5258333Z             {
2026-06-16T09:36:12.5259058Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5259963Z               "line": 6778
2026-06-16T09:36:12.5260616Z             },
2026-06-16T09:36:12.5261141Z             {
2026-06-16T09:36:12.5261780Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5262635Z               "line": 6801
2026-06-16T09:36:12.5263269Z             },
2026-06-16T09:36:12.5263831Z             {
2026-06-16T09:36:12.5264519Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5265401Z               "line": 8633
2026-06-16T09:36:12.5265983Z             },
2026-06-16T09:36:12.5266331Z             {
2026-06-16T09:36:12.5266694Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5267167Z               "line": 8642
2026-06-16T09:36:12.5267524Z             },
2026-06-16T09:36:12.5267818Z             {
2026-06-16T09:36:12.5268155Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5268635Z               "line": 8656
2026-06-16T09:36:12.5269113Z             }
2026-06-16T09:36:12.5269470Z           ]
2026-06-16T09:36:12.5269766Z         }
2026-06-16T09:36:12.5270044Z       }
2026-06-16T09:36:12.5270321Z     },
2026-06-16T09:36:12.5270590Z     {
2026-06-16T09:36:12.5270875Z       "id": "REQ-MSG-3",
2026-06-16T09:36:12.5271983Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-16T09:36:12.5273181Z       "requiredStages": [
2026-06-16T09:36:12.5273533Z         "impl",
2026-06-16T09:36:12.5273839Z         "unit",
2026-06-16T09:36:12.5274140Z         "int"
2026-06-16T09:36:12.5274425Z       ],
2026-06-16T09:36:12.5274696Z       "stages": {
2026-06-16T09:36:12.5274992Z         "doc": {
2026-06-16T09:36:12.5275312Z           "complete": false,
2026-06-16T09:36:12.5275696Z           "evidence": []
2026-06-16T09:36:12.5276043Z         },
2026-06-16T09:36:12.5276516Z         "impl": {
2026-06-16T09:36:12.5276850Z           "complete": true,
2026-06-16T09:36:12.5277216Z           "evidence": [
2026-06-16T09:36:12.5277549Z             {
2026-06-16T09:36:12.5277927Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-16T09:36:12.5278528Z               "line": 19
2026-06-16T09:36:12.5278867Z             },
2026-06-16T09:36:12.5279263Z             {
2026-06-16T09:36:12.5279626Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.5280111Z               "line": 21
2026-06-16T09:36:12.5280450Z             },
2026-06-16T09:36:12.5280751Z             {
2026-06-16T09:36:12.5281106Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.5281580Z               "line": 48
2026-06-16T09:36:12.5281928Z             },
2026-06-16T09:36:12.5282214Z             {
2026-06-16T09:36:12.5282581Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.5283048Z               "line": 151
2026-06-16T09:36:12.5283404Z             }
2026-06-16T09:36:12.5283693Z           ]
2026-06-16T09:36:12.5283974Z         },
2026-06-16T09:36:12.5288066Z         "int": {
2026-06-16T09:36:12.5288443Z           "complete": true,
2026-06-16T09:36:12.5288818Z           "evidence": [
2026-06-16T09:36:12.5289285Z             {
2026-06-16T09:36:12.5289727Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-16T09:36:12.5290281Z               "line": 10
2026-06-16T09:36:12.5290620Z             },
2026-06-16T09:36:12.5290910Z             {
2026-06-16T09:36:12.5291339Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-16T09:36:12.5291878Z               "line": 56
2026-06-16T09:36:12.5292216Z             }
2026-06-16T09:36:12.5292493Z           ]
2026-06-16T09:36:12.5292769Z         },
2026-06-16T09:36:12.5293046Z         "unit": {
2026-06-16T09:36:12.5293371Z           "complete": true,
2026-06-16T09:36:12.5293737Z           "evidence": [
2026-06-16T09:36:12.5294064Z             {
2026-06-16T09:36:12.5294416Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.5294901Z               "line": 205
2026-06-16T09:36:12.5295250Z             },
2026-06-16T09:36:12.5295536Z             {
2026-06-16T09:36:12.5295904Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.5296398Z               "line": 224
2026-06-16T09:36:12.5296746Z             },
2026-06-16T09:36:12.5297035Z             {
2026-06-16T09:36:12.5297382Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-16T09:36:12.5297860Z               "line": 247
2026-06-16T09:36:12.5298203Z             }
2026-06-16T09:36:12.5298490Z           ]
2026-06-16T09:36:12.5298771Z         }
2026-06-16T09:36:12.5299129Z       }
2026-06-16T09:36:12.5299398Z     },
2026-06-16T09:36:12.5299668Z     {
2026-06-16T09:36:12.5299953Z       "id": "REQ-MSG-4",
2026-06-16T09:36:12.5302123Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-16T09:36:12.5304120Z       "requiredStages": [
2026-06-16T09:36:12.5304477Z         "impl",
2026-06-16T09:36:12.5304798Z         "unit",
2026-06-16T09:36:12.5305103Z         "int"
2026-06-16T09:36:12.5305385Z       ],
2026-06-16T09:36:12.5305657Z       "stages": {
2026-06-16T09:36:12.5305958Z         "doc": {
2026-06-16T09:36:12.5306282Z           "complete": false,
2026-06-16T09:36:12.5306668Z           "evidence": []
2026-06-16T09:36:12.5307012Z         },
2026-06-16T09:36:12.5307301Z         "impl": {
2026-06-16T09:36:12.5307619Z           "complete": true,
2026-06-16T09:36:12.5307994Z           "evidence": [
2026-06-16T09:36:12.5308328Z             {
2026-06-16T09:36:12.5308677Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5309403Z               "line": 19
2026-06-16T09:36:12.5309925Z             },
2026-06-16T09:36:12.5310204Z             {
2026-06-16T09:36:12.5310738Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5311210Z               "line": 46
2026-06-16T09:36:12.5311553Z             },
2026-06-16T09:36:12.5311849Z             {
2026-06-16T09:36:12.5312350Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.5312835Z               "line": 407
2026-06-16T09:36:12.5313179Z             },
2026-06-16T09:36:12.5313469Z             {
2026-06-16T09:36:12.5313799Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5314256Z               "line": 2838
2026-06-16T09:36:12.5314590Z             }
2026-06-16T09:36:12.5314877Z           ]
2026-06-16T09:36:12.5315152Z         },
2026-06-16T09:36:12.5315430Z         "int": {
2026-06-16T09:36:12.5315755Z           "complete": true,
2026-06-16T09:36:12.5316127Z           "evidence": [
2026-06-16T09:36:12.5316461Z             {
2026-06-16T09:36:12.5316837Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-16T09:36:12.5317358Z               "line": 98
2026-06-16T09:36:12.5317702Z             },
2026-06-16T09:36:12.5317980Z             {
2026-06-16T09:36:12.5318355Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-16T09:36:12.5318855Z               "line": 128
2026-06-16T09:36:12.5319314Z             }
2026-06-16T09:36:12.5319596Z           ]
2026-06-16T09:36:12.5319872Z         },
2026-06-16T09:36:12.5320152Z         "unit": {
2026-06-16T09:36:12.5320471Z           "complete": true,
2026-06-16T09:36:12.5320850Z           "evidence": [
2026-06-16T09:36:12.5321169Z             {
2026-06-16T09:36:12.5321528Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5322009Z               "line": 68
2026-06-16T09:36:12.5322357Z             },
2026-06-16T09:36:12.5322633Z             {
2026-06-16T09:36:12.5322977Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5323438Z               "line": 79
2026-06-16T09:36:12.5323792Z             },
2026-06-16T09:36:12.5324088Z             {
2026-06-16T09:36:12.5324445Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5324921Z               "line": 90
2026-06-16T09:36:12.5325259Z             },
2026-06-16T09:36:12.5325550Z             {
2026-06-16T09:36:12.5325896Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5326373Z               "line": 151
2026-06-16T09:36:12.5326711Z             }
2026-06-16T09:36:12.5327012Z           ]
2026-06-16T09:36:12.5327284Z         }
2026-06-16T09:36:12.5327550Z       }
2026-06-16T09:36:12.5327812Z     },
2026-06-16T09:36:12.5328064Z     {
2026-06-16T09:36:12.5328351Z       "id": "REQ-MSG-5",
2026-06-16T09:36:12.5330437Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-16T09:36:12.5332488Z       "requiredStages": [
2026-06-16T09:36:12.5332841Z         "doc",
2026-06-16T09:36:12.5333127Z         "impl",
2026-06-16T09:36:12.5333423Z         "unit"
2026-06-16T09:36:12.5333710Z       ],
2026-06-16T09:36:12.5333989Z       "stages": {
2026-06-16T09:36:12.5334299Z         "doc": {
2026-06-16T09:36:12.5334629Z           "complete": true,
2026-06-16T09:36:12.5334996Z           "evidence": [
2026-06-16T09:36:12.5335325Z             {
2026-06-16T09:36:12.5335645Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.5336067Z               "line": 212
2026-06-16T09:36:12.5336412Z             }
2026-06-16T09:36:12.5336699Z           ]
2026-06-16T09:36:12.5336971Z         },
2026-06-16T09:36:12.5337253Z         "impl": {
2026-06-16T09:36:12.5337577Z           "complete": true,
2026-06-16T09:36:12.5337943Z           "evidence": [
2026-06-16T09:36:12.5338281Z             {
2026-06-16T09:36:12.5338634Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-16T09:36:12.5339304Z               "line": 60
2026-06-16T09:36:12.5339847Z             },
2026-06-16T09:36:12.5340143Z             {
2026-06-16T09:36:12.5340510Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.5340997Z               "line": 126
2026-06-16T09:36:12.5341336Z             },
2026-06-16T09:36:12.5341739Z             {
2026-06-16T09:36:12.5342105Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.5342580Z               "line": 135
2026-06-16T09:36:12.5342924Z             },
2026-06-16T09:36:12.5343215Z             {
2026-06-16T09:36:12.5343588Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.5344063Z               "line": 149
2026-06-16T09:36:12.5344406Z             },
2026-06-16T09:36:12.5344697Z             {
2026-06-16T09:36:12.5345059Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.5345541Z               "line": 178
2026-06-16T09:36:12.5345885Z             },
2026-06-16T09:36:12.5346162Z             {
2026-06-16T09:36:12.5346500Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5346972Z               "line": 2584
2026-06-16T09:36:12.5347325Z             }
2026-06-16T09:36:12.5347616Z           ]
2026-06-16T09:36:12.5347898Z         },
2026-06-16T09:36:12.5348174Z         "int": {
2026-06-16T09:36:12.5348499Z           "complete": true,
2026-06-16T09:36:12.5348870Z           "evidence": [
2026-06-16T09:36:12.5349305Z             {
2026-06-16T09:36:12.5349680Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-16T09:36:12.5350159Z               "line": 19
2026-06-16T09:36:12.5350493Z             }
2026-06-16T09:36:12.5350784Z           ]
2026-06-16T09:36:12.5351060Z         },
2026-06-16T09:36:12.5351338Z         "unit": {
2026-06-16T09:36:12.5351667Z           "complete": true,
2026-06-16T09:36:12.5352042Z           "evidence": [
2026-06-16T09:36:12.5352378Z             {
2026-06-16T09:36:12.5352740Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-16T09:36:12.5353214Z               "line": 192
2026-06-16T09:36:12.5353561Z             },
2026-06-16T09:36:12.5353858Z             {
2026-06-16T09:36:12.5354238Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-16T09:36:12.5354739Z               "line": 154
2026-06-16T09:36:12.5355090Z             },
2026-06-16T09:36:12.5355390Z             {
2026-06-16T09:36:12.5355734Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5356206Z               "line": 122
2026-06-16T09:36:12.5356544Z             },
2026-06-16T09:36:12.5356835Z             {
2026-06-16T09:36:12.5357197Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.5357676Z               "line": 452
2026-06-16T09:36:12.5358019Z             },
2026-06-16T09:36:12.5358301Z             {
2026-06-16T09:36:12.5358664Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.5359250Z               "line": 501
2026-06-16T09:36:12.5359599Z             },
2026-06-16T09:36:12.5359880Z             {
2026-06-16T09:36:12.5360254Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.5360733Z               "line": 517
2026-06-16T09:36:12.5361067Z             },
2026-06-16T09:36:12.5361354Z             {
2026-06-16T09:36:12.5361720Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.5362218Z               "line": 536
2026-06-16T09:36:12.5362561Z             },
2026-06-16T09:36:12.5362840Z             {
2026-06-16T09:36:12.5363177Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5363634Z               "line": 6630
2026-06-16T09:36:12.5363977Z             }
2026-06-16T09:36:12.5364268Z           ]
2026-06-16T09:36:12.5364536Z         }
2026-06-16T09:36:12.5364802Z       }
2026-06-16T09:36:12.5365071Z     },
2026-06-16T09:36:12.5365342Z     {
2026-06-16T09:36:12.5365621Z       "id": "REQ-MSG-6",
2026-06-16T09:36:12.5369681Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-16T09:36:12.5373541Z       "requiredStages": [
2026-06-16T09:36:12.5373898Z         "doc",
2026-06-16T09:36:12.5374199Z         "impl",
2026-06-16T09:36:12.5374494Z         "unit"
2026-06-16T09:36:12.5374796Z       ],
2026-06-16T09:36:12.5375076Z       "stages": {
2026-06-16T09:36:12.5375381Z         "doc": {
2026-06-16T09:36:12.5375696Z           "complete": true,
2026-06-16T09:36:12.5376067Z           "evidence": [
2026-06-16T09:36:12.5376396Z             {
2026-06-16T09:36:12.5376702Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.5377116Z               "line": 215
2026-06-16T09:36:12.5377454Z             }
2026-06-16T09:36:12.5377741Z           ]
2026-06-16T09:36:12.5378027Z         },
2026-06-16T09:36:12.5378303Z         "impl": {
2026-06-16T09:36:12.5378629Z           "complete": true,
2026-06-16T09:36:12.5379101Z           "evidence": [
2026-06-16T09:36:12.5379455Z             {
2026-06-16T09:36:12.5379888Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5380423Z               "line": 177
2026-06-16T09:36:12.5380781Z             },
2026-06-16T09:36:12.5381086Z             {
2026-06-16T09:36:12.5381487Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5382012Z               "line": 422
2026-06-16T09:36:12.5382355Z             },
2026-06-16T09:36:12.5382642Z             {
2026-06-16T09:36:12.5383037Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5383552Z               "line": 445
2026-06-16T09:36:12.5383894Z             },
2026-06-16T09:36:12.5384182Z             {
2026-06-16T09:36:12.5384540Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-16T09:36:12.5385017Z               "line": 89
2026-06-16T09:36:12.5385351Z             },
2026-06-16T09:36:12.5385636Z             {
2026-06-16T09:36:12.5386023Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.5386558Z               "line": 155
2026-06-16T09:36:12.5386924Z             }
2026-06-16T09:36:12.5387214Z           ]
2026-06-16T09:36:12.5387491Z         },
2026-06-16T09:36:12.5387773Z         "int": {
2026-06-16T09:36:12.5388093Z           "complete": false,
2026-06-16T09:36:12.5388478Z           "evidence": []
2026-06-16T09:36:12.5388812Z         },
2026-06-16T09:36:12.5389218Z         "unit": {
2026-06-16T09:36:12.5389552Z           "complete": true,
2026-06-16T09:36:12.5389928Z           "evidence": [
2026-06-16T09:36:12.5390267Z             {
2026-06-16T09:36:12.5390669Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5391197Z               "line": 1639
2026-06-16T09:36:12.5391541Z             },
2026-06-16T09:36:12.5391834Z             {
2026-06-16T09:36:12.5392204Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-16T09:36:12.5392687Z               "line": 219
2026-06-16T09:36:12.5393034Z             }
2026-06-16T09:36:12.5393320Z           ]
2026-06-16T09:36:12.5393597Z         }
2026-06-16T09:36:12.5393865Z       }
2026-06-16T09:36:12.5394132Z     },
2026-06-16T09:36:12.5394392Z     {
2026-06-16T09:36:12.5394694Z       "id": "REQ-MSG-ENVELOPE",
2026-06-16T09:36:12.5403571Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-16T09:36:12.5412375Z       "requiredStages": [
2026-06-16T09:36:12.5412733Z         "doc",
2026-06-16T09:36:12.5413031Z         "impl",
2026-06-16T09:36:12.5413315Z         "unit",
2026-06-16T09:36:12.5413615Z         "int"
2026-06-16T09:36:12.5413901Z       ],
2026-06-16T09:36:12.5414192Z       "stages": {
2026-06-16T09:36:12.5414531Z         "doc": {
2026-06-16T09:36:12.5414855Z           "complete": true,
2026-06-16T09:36:12.5415223Z           "evidence": [
2026-06-16T09:36:12.5415555Z             {
2026-06-16T09:36:12.5416206Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-16T09:36:12.5417031Z               "line": 47
2026-06-16T09:36:12.5417360Z             }
2026-06-16T09:36:12.5417660Z           ]
2026-06-16T09:36:12.5417932Z         },
2026-06-16T09:36:12.5418215Z         "impl": {
2026-06-16T09:36:12.5418543Z           "complete": true,
2026-06-16T09:36:12.5418929Z           "evidence": [
2026-06-16T09:36:12.5419361Z             {
2026-06-16T09:36:12.5419729Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5420205Z               "line": 20
2026-06-16T09:36:12.5420530Z             },
2026-06-16T09:36:12.5420824Z             {
2026-06-16T09:36:12.5421167Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5421647Z               "line": 33
2026-06-16T09:36:12.5421986Z             },
2026-06-16T09:36:12.5422267Z             {
2026-06-16T09:36:12.5422611Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5423068Z               "line": 47
2026-06-16T09:36:12.5423411Z             },
2026-06-16T09:36:12.5423691Z             {
2026-06-16T09:36:12.5424043Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5424509Z               "line": 58
2026-06-16T09:36:12.5424848Z             },
2026-06-16T09:36:12.5425134Z             {
2026-06-16T09:36:12.5425497Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5425968Z               "line": 14
2026-06-16T09:36:12.5426313Z             },
2026-06-16T09:36:12.5426609Z             {
2026-06-16T09:36:12.5426971Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5427444Z               "line": 27
2026-06-16T09:36:12.5427778Z             },
2026-06-16T09:36:12.5428064Z             {
2026-06-16T09:36:12.5428418Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5428892Z               "line": 40
2026-06-16T09:36:12.5429311Z             },
2026-06-16T09:36:12.5429626Z             {
2026-06-16T09:36:12.5429994Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.5430494Z               "line": 92
2026-06-16T09:36:12.5430823Z             },
2026-06-16T09:36:12.5431113Z             {
2026-06-16T09:36:12.5431492Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5431989Z               "line": 143
2026-06-16T09:36:12.5432336Z             },
2026-06-16T09:36:12.5432627Z             {
2026-06-16T09:36:12.5432989Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5433481Z               "line": 216
2026-06-16T09:36:12.5433830Z             },
2026-06-16T09:36:12.5434118Z             {
2026-06-16T09:36:12.5434493Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.5434979Z               "line": 408
2026-06-16T09:36:12.5435476Z             },
2026-06-16T09:36:12.5435757Z             {
2026-06-16T09:36:12.5440134Z               "path": "crates/spt/src/api/worker.rs",
2026-06-16T09:36:12.5440701Z               "line": 78
2026-06-16T09:36:12.5441222Z             },
2026-06-16T09:36:12.5441523Z             {
2026-06-16T09:36:12.5441878Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5442352Z               "line": 2839
2026-06-16T09:36:12.5442705Z             }
2026-06-16T09:36:12.5442991Z           ]
2026-06-16T09:36:12.5443278Z         },
2026-06-16T09:36:12.5443559Z         "int": {
2026-06-16T09:36:12.5443883Z           "complete": true,
2026-06-16T09:36:12.5444260Z           "evidence": [
2026-06-16T09:36:12.5444597Z             {
2026-06-16T09:36:12.5444990Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-16T09:36:12.5445520Z               "line": 15
2026-06-16T09:36:12.5445854Z             }
2026-06-16T09:36:12.5446140Z           ]
2026-06-16T09:36:12.5446421Z         },
2026-06-16T09:36:12.5446699Z         "unit": {
2026-06-16T09:36:12.5447018Z           "complete": true,
2026-06-16T09:36:12.5447378Z           "evidence": [
2026-06-16T09:36:12.5447711Z             {
2026-06-16T09:36:12.5448059Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5448540Z               "line": 102
2026-06-16T09:36:12.5448879Z             },
2026-06-16T09:36:12.5449256Z             {
2026-06-16T09:36:12.5449622Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-16T09:36:12.5450097Z               "line": 137
2026-06-16T09:36:12.5450431Z             },
2026-06-16T09:36:12.5450722Z             {
2026-06-16T09:36:12.5451071Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5451538Z               "line": 98
2026-06-16T09:36:12.5451876Z             },
2026-06-16T09:36:12.5452173Z             {
2026-06-16T09:36:12.5452532Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5453003Z               "line": 106
2026-06-16T09:36:12.5453342Z             },
2026-06-16T09:36:12.5453628Z             {
2026-06-16T09:36:12.5453976Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5454448Z               "line": 113
2026-06-16T09:36:12.5454782Z             },
2026-06-16T09:36:12.5455077Z             {
2026-06-16T09:36:12.5455432Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-16T09:36:12.5455899Z               "line": 122
2026-06-16T09:36:12.5456238Z             }
2026-06-16T09:36:12.5456523Z           ]
2026-06-16T09:36:12.5456790Z         }
2026-06-16T09:36:12.5457063Z       }
2026-06-16T09:36:12.5457325Z     },
2026-06-16T09:36:12.5457593Z     {
2026-06-16T09:36:12.5457872Z       "id": "REQ-NET-1",
2026-06-16T09:36:12.5458471Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-16T09:36:12.5459233Z       "requiredStages": [
2026-06-16T09:36:12.5459601Z         "impl",
2026-06-16T09:36:12.5459895Z         "unit",
2026-06-16T09:36:12.5460192Z         "int"
2026-06-16T09:36:12.5460488Z       ],
2026-06-16T09:36:12.5460764Z       "stages": {
2026-06-16T09:36:12.5461083Z         "doc": {
2026-06-16T09:36:12.5461407Z           "complete": false,
2026-06-16T09:36:12.5461807Z           "evidence": []
2026-06-16T09:36:12.5462156Z         },
2026-06-16T09:36:12.5462441Z         "impl": {
2026-06-16T09:36:12.5462770Z           "complete": true,
2026-06-16T09:36:12.5463144Z           "evidence": [
2026-06-16T09:36:12.5463477Z             {
2026-06-16T09:36:12.5463863Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.5464374Z               "line": 54
2026-06-16T09:36:12.5464717Z             },
2026-06-16T09:36:12.5465008Z             {
2026-06-16T09:36:12.5465399Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.5465903Z               "line": 594
2026-06-16T09:36:12.5466241Z             },
2026-06-16T09:36:12.5466541Z             {
2026-06-16T09:36:12.5466912Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-16T09:36:12.5467528Z               "line": 130
2026-06-16T09:36:12.5467871Z             },
2026-06-16T09:36:12.5468167Z             {
2026-06-16T09:36:12.5468554Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5469283Z               "line": 97
2026-06-16T09:36:12.5469651Z             },
2026-06-16T09:36:12.5469946Z             {
2026-06-16T09:36:12.5470324Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5470824Z               "line": 159
2026-06-16T09:36:12.5471171Z             },
2026-06-16T09:36:12.5471461Z             {
2026-06-16T09:36:12.5471843Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5472348Z               "line": 175
2026-06-16T09:36:12.5472687Z             },
2026-06-16T09:36:12.5472968Z             {
2026-06-16T09:36:12.5473349Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5473857Z               "line": 190
2026-06-16T09:36:12.5474191Z             },
2026-06-16T09:36:12.5474487Z             {
2026-06-16T09:36:12.5474872Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5475377Z               "line": 271
2026-06-16T09:36:12.5475712Z             },
2026-06-16T09:36:12.5476007Z             {
2026-06-16T09:36:12.5476387Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5476886Z               "line": 306
2026-06-16T09:36:12.5477224Z             },
2026-06-16T09:36:12.5477534Z             {
2026-06-16T09:36:12.5477901Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5478412Z               "line": 312
2026-06-16T09:36:12.5478750Z             },
2026-06-16T09:36:12.5479100Z             {
2026-06-16T09:36:12.5479329Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5479476Z               "line": 318
2026-06-16T09:36:12.5479606Z             },
2026-06-16T09:36:12.5479730Z             {
2026-06-16T09:36:12.5479963Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5480110Z               "line": 334
2026-06-16T09:36:12.5480236Z             },
2026-06-16T09:36:12.5480368Z             {
2026-06-16T09:36:12.5480583Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5480726Z               "line": 354
2026-06-16T09:36:12.5480850Z             },
2026-06-16T09:36:12.5480978Z             {
2026-06-16T09:36:12.5481190Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-16T09:36:12.5481321Z               "line": 35
2026-06-16T09:36:12.5481461Z             },
2026-06-16T09:36:12.5481580Z             {
2026-06-16T09:36:12.5481792Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-16T09:36:12.5481932Z               "line": 85
2026-06-16T09:36:12.5482064Z             },
2026-06-16T09:36:12.5482184Z             {
2026-06-16T09:36:12.5482393Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.5482533Z               "line": 138
2026-06-16T09:36:12.5482665Z             },
2026-06-16T09:36:12.5482790Z             {
2026-06-16T09:36:12.5482971Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5483124Z               "line": 2681
2026-06-16T09:36:12.5483256Z             },
2026-06-16T09:36:12.5483381Z             {
2026-06-16T09:36:12.5483571Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.5483714Z               "line": 17
2026-06-16T09:36:12.5483853Z             }
2026-06-16T09:36:12.5483980Z           ]
2026-06-16T09:36:12.5484114Z         },
2026-06-16T09:36:12.5484245Z         "int": {
2026-06-16T09:36:12.5484388Z           "complete": true,
2026-06-16T09:36:12.5484527Z           "evidence": [
2026-06-16T09:36:12.5484645Z             {
2026-06-16T09:36:12.5484884Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.5485027Z               "line": 341
2026-06-16T09:36:12.5485156Z             },
2026-06-16T09:36:12.5485289Z             {
2026-06-16T09:36:12.5485509Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5485766Z               "line": 673
2026-06-16T09:36:12.5485895Z             },
2026-06-16T09:36:12.5486025Z             {
2026-06-16T09:36:12.5486248Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5486486Z               "line": 971
2026-06-16T09:36:12.5486616Z             }
2026-06-16T09:36:12.5486739Z           ]
2026-06-16T09:36:12.5486861Z         },
2026-06-16T09:36:12.5486995Z         "unit": {
2026-06-16T09:36:12.5487146Z           "complete": true,
2026-06-16T09:36:12.5487289Z           "evidence": [
2026-06-16T09:36:12.5487413Z             {
2026-06-16T09:36:12.5487633Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.5487765Z               "line": 651
2026-06-16T09:36:12.5487880Z             },
2026-06-16T09:36:12.5488009Z             {
2026-06-16T09:36:12.5488223Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.5488366Z               "line": 686
2026-06-16T09:36:12.5488499Z             },
2026-06-16T09:36:12.5488629Z             {
2026-06-16T09:36:12.5488858Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.5489077Z               "line": 936
2026-06-16T09:36:12.5489197Z             },
2026-06-16T09:36:12.5489338Z             {
2026-06-16T09:36:12.5489566Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-16T09:36:12.5489708Z               "line": 201
2026-06-16T09:36:12.5489836Z             },
2026-06-16T09:36:12.5489966Z             {
2026-06-16T09:36:12.5490190Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5490332Z               "line": 442
2026-06-16T09:36:12.5490466Z             },
2026-06-16T09:36:12.5490595Z             {
2026-06-16T09:36:12.5490819Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5490971Z               "line": 456
2026-06-16T09:36:12.5491095Z             },
2026-06-16T09:36:12.5491224Z             {
2026-06-16T09:36:12.5491458Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5491610Z               "line": 475
2026-06-16T09:36:12.5491745Z             },
2026-06-16T09:36:12.5491881Z             {
2026-06-16T09:36:12.5492102Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-16T09:36:12.5492253Z               "line": 120
2026-06-16T09:36:12.5492381Z             },
2026-06-16T09:36:12.5492511Z             {
2026-06-16T09:36:12.5492735Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-16T09:36:12.5492882Z               "line": 163
2026-06-16T09:36:12.5493011Z             },
2026-06-16T09:36:12.5493144Z             {
2026-06-16T09:36:12.5493340Z               "path": "crates/spt-store/src/spool.rs",
2026-06-16T09:36:12.5493473Z               "line": 530
2026-06-16T09:36:12.5493602Z             },
2026-06-16T09:36:12.5493727Z             {
2026-06-16T09:36:12.5493921Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.5494056Z               "line": 616
2026-06-16T09:36:12.5494189Z             },
2026-06-16T09:36:12.5494319Z             {
2026-06-16T09:36:12.5494507Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.5494650Z               "line": 1006
2026-06-16T09:36:12.5494791Z             }
2026-06-16T09:36:12.5494919Z           ]
2026-06-16T09:36:12.5495044Z         }
2026-06-16T09:36:12.5495181Z       }
2026-06-16T09:36:12.5495306Z     },
2026-06-16T09:36:12.5495430Z     {
2026-06-16T09:36:12.5495573Z       "id": "REQ-NET-2",
2026-06-16T09:36:12.5495946Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-16T09:36:12.5496111Z       "requiredStages": [
2026-06-16T09:36:12.5496246Z         "impl"
2026-06-16T09:36:12.5496389Z       ],
2026-06-16T09:36:12.5496542Z       "stages": {
2026-06-16T09:36:12.5496693Z         "doc": {
2026-06-16T09:36:12.5496852Z           "complete": false,
2026-06-16T09:36:12.5497012Z           "evidence": []
2026-06-16T09:36:12.5497152Z         },
2026-06-16T09:36:12.5497408Z         "impl": {
2026-06-16T09:36:12.5497565Z           "complete": true,
2026-06-16T09:36:12.5497706Z           "evidence": [
2026-06-16T09:36:12.5497839Z             {
2026-06-16T09:36:12.5498063Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.5498293Z               "line": 57
2026-06-16T09:36:12.5498420Z             },
2026-06-16T09:36:12.5498545Z             {
2026-06-16T09:36:12.5498779Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5498917Z               "line": 71
2026-06-16T09:36:12.5499133Z             },
2026-06-16T09:36:12.5499255Z             {
2026-06-16T09:36:12.5499490Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5499622Z               "line": 81
2026-06-16T09:36:12.5499747Z             },
2026-06-16T09:36:12.5499884Z             {
2026-06-16T09:36:12.5500103Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5500253Z               "line": 159
2026-06-16T09:36:12.5500382Z             },
2026-06-16T09:36:12.5500507Z             {
2026-06-16T09:36:12.5500721Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5500859Z               "line": 175
2026-06-16T09:36:12.5500992Z             },
2026-06-16T09:36:12.5501126Z             {
2026-06-16T09:36:12.5501341Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-16T09:36:12.5501484Z               "line": 190
2026-06-16T09:36:12.5501607Z             }
2026-06-16T09:36:12.5501732Z           ]
2026-06-16T09:36:12.5501860Z         },
2026-06-16T09:36:12.5501990Z         "int": {
2026-06-16T09:36:12.5502132Z           "complete": false,
2026-06-16T09:36:12.5502281Z           "evidence": []
2026-06-16T09:36:12.5502409Z         },
2026-06-16T09:36:12.5502552Z         "unit": {
2026-06-16T09:36:12.5502705Z           "complete": true,
2026-06-16T09:36:12.5502846Z           "evidence": [
2026-06-16T09:36:12.5502971Z             {
2026-06-16T09:36:12.5503194Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.5503348Z               "line": 402
2026-06-16T09:36:12.5503471Z             }
2026-06-16T09:36:12.5503601Z           ]
2026-06-16T09:36:12.5503729Z         }
2026-06-16T09:36:12.5503862Z       }
2026-06-16T09:36:12.5503996Z     },
2026-06-16T09:36:12.5504119Z     {
2026-06-16T09:36:12.5504268Z       "id": "REQ-NET-3",
2026-06-16T09:36:12.5504616Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-16T09:36:12.5504768Z       "requiredStages": [
2026-06-16T09:36:12.5504902Z         "impl",
2026-06-16T09:36:12.5505034Z         "unit"
2026-06-16T09:36:12.5505157Z       ],
2026-06-16T09:36:12.5505295Z       "stages": {
2026-06-16T09:36:12.5505432Z         "doc": {
2026-06-16T09:36:12.5505585Z           "complete": false,
2026-06-16T09:36:12.5505732Z           "evidence": []
2026-06-16T09:36:12.5505861Z         },
2026-06-16T09:36:12.5505985Z         "impl": {
2026-06-16T09:36:12.5506138Z           "complete": true,
2026-06-16T09:36:12.5506276Z           "evidence": [
2026-06-16T09:36:12.5506414Z             {
2026-06-16T09:36:12.5506620Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.5506767Z               "line": 39
2026-06-16T09:36:12.5506901Z             },
2026-06-16T09:36:12.5507024Z             {
2026-06-16T09:36:12.5507239Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.5507383Z               "line": 182
2026-06-16T09:36:12.5507507Z             },
2026-06-16T09:36:12.5507630Z             {
2026-06-16T09:36:12.5507841Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-16T09:36:12.5507991Z               "line": 333
2026-06-16T09:36:12.5508120Z             },
2026-06-16T09:36:12.5508246Z             {
2026-06-16T09:36:12.5508443Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-16T09:36:12.5508580Z               "line": 36
2026-06-16T09:36:12.5508714Z             },
2026-06-16T09:36:12.5508839Z             {
2026-06-16T09:36:12.5509163Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.5509472Z               "line": 158
2026-06-16T09:36:12.5509601Z             },
2026-06-16T09:36:12.5509717Z             {
2026-06-16T09:36:12.5509954Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.5510182Z               "line": 212
2026-06-16T09:36:12.5510317Z             },
2026-06-16T09:36:12.5510444Z             {
2026-06-16T09:36:12.5510678Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.5510818Z               "line": 233
2026-06-16T09:36:12.5510947Z             },
2026-06-16T09:36:12.5511081Z             {
2026-06-16T09:36:12.5511306Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.5511457Z               "line": 291
2026-06-16T09:36:12.5511591Z             },
2026-06-16T09:36:12.5511715Z             {
2026-06-16T09:36:12.5511954Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.5512096Z               "line": 310
2026-06-16T09:36:12.5512230Z             },
2026-06-16T09:36:12.5512353Z             {
2026-06-16T09:36:12.5512579Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.5512725Z               "line": 348
2026-06-16T09:36:12.5512860Z             },
2026-06-16T09:36:12.5512987Z             {
2026-06-16T09:36:12.5513223Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.5513354Z               "line": 393
2026-06-16T09:36:12.5513487Z             },
2026-06-16T09:36:12.5513612Z             {
2026-06-16T09:36:12.5513845Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.5513974Z               "line": 406
2026-06-16T09:36:12.5514107Z             },
2026-06-16T09:36:12.5514236Z             {
2026-06-16T09:36:12.5514465Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.5514608Z               "line": 29
2026-06-16T09:36:12.5514736Z             },
2026-06-16T09:36:12.5514866Z             {
2026-06-16T09:36:12.5515085Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.5515223Z               "line": 72
2026-06-16T09:36:12.5515347Z             },
2026-06-16T09:36:12.5515472Z             {
2026-06-16T09:36:12.5515708Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.5515855Z               "line": 123
2026-06-16T09:36:12.5515982Z             }
2026-06-16T09:36:12.5516111Z           ]
2026-06-16T09:36:12.5516240Z         },
2026-06-16T09:36:12.5516364Z         "int": {
2026-06-16T09:36:12.5516517Z           "complete": false,
2026-06-16T09:36:12.5516664Z           "evidence": []
2026-06-16T09:36:12.5516799Z         },
2026-06-16T09:36:12.5516936Z         "unit": {
2026-06-16T09:36:12.5517085Z           "complete": true,
2026-06-16T09:36:12.5517232Z           "evidence": [
2026-06-16T09:36:12.5517352Z             {
2026-06-16T09:36:12.5517570Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-16T09:36:12.5517714Z               "line": 223
2026-06-16T09:36:12.5517847Z             },
2026-06-16T09:36:12.5517972Z             {
2026-06-16T09:36:12.5518186Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-16T09:36:12.5518339Z               "line": 351
2026-06-16T09:36:12.5518471Z             },
2026-06-16T09:36:12.5518594Z             {
2026-06-16T09:36:12.5518816Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-16T09:36:12.5519022Z               "line": 504
2026-06-16T09:36:12.5519159Z             },
2026-06-16T09:36:12.5519284Z             {
2026-06-16T09:36:12.5519502Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-16T09:36:12.5519637Z               "line": 93
2026-06-16T09:36:12.5519766Z             },
2026-06-16T09:36:12.5519889Z             {
2026-06-16T09:36:12.5520090Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-16T09:36:12.5520238Z               "line": 142
2026-06-16T09:36:12.5520370Z             },
2026-06-16T09:36:12.5520500Z             {
2026-06-16T09:36:12.5520829Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.5520981Z               "line": 315
2026-06-16T09:36:12.5521100Z             },
2026-06-16T09:36:12.5521218Z             {
2026-06-16T09:36:12.5521445Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.5521683Z               "line": 355
2026-06-16T09:36:12.5521812Z             },
2026-06-16T09:36:12.5521936Z             {
2026-06-16T09:36:12.5522156Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-16T09:36:12.5522299Z               "line": 494
2026-06-16T09:36:12.5522427Z             }
2026-06-16T09:36:12.5522556Z           ]
2026-06-16T09:36:12.5522684Z         }
2026-06-16T09:36:12.5522815Z       }
2026-06-16T09:36:12.5522943Z     },
2026-06-16T09:36:12.5523071Z     {
2026-06-16T09:36:12.5523242Z       "id": "REQ-NODE-IDENTITY",
2026-06-16T09:36:12.5523754Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-16T09:36:12.5523909Z       "requiredStages": [
2026-06-16T09:36:12.5524043Z         "impl",
2026-06-16T09:36:12.5524182Z         "unit"
2026-06-16T09:36:12.5524323Z       ],
2026-06-16T09:36:12.5524449Z       "stages": {
2026-06-16T09:36:12.5524586Z         "doc": {
2026-06-16T09:36:12.5524745Z           "complete": false,
2026-06-16T09:36:12.5524891Z           "evidence": []
2026-06-16T09:36:12.5525011Z         },
2026-06-16T09:36:12.5525154Z         "impl": {
2026-06-16T09:36:12.5525306Z           "complete": true,
2026-06-16T09:36:12.5525445Z           "evidence": [
2026-06-16T09:36:12.5525578Z             {
2026-06-16T09:36:12.5525797Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5525936Z               "line": 60
2026-06-16T09:36:12.5526065Z             },
2026-06-16T09:36:12.5526192Z             {
2026-06-16T09:36:12.5526420Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5526566Z               "line": 68
2026-06-16T09:36:12.5526701Z             },
2026-06-16T09:36:12.5526843Z             {
2026-06-16T09:36:12.5527063Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5527205Z               "line": 86
2026-06-16T09:36:12.5527330Z             },
2026-06-16T09:36:12.5527463Z             {
2026-06-16T09:36:12.5527692Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5527839Z               "line": 120
2026-06-16T09:36:12.5527964Z             },
2026-06-16T09:36:12.5528088Z             {
2026-06-16T09:36:12.5528303Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5528450Z               "line": 127
2026-06-16T09:36:12.5528575Z             },
2026-06-16T09:36:12.5528698Z             {
2026-06-16T09:36:12.5528918Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5529145Z               "line": 143
2026-06-16T09:36:12.5529278Z             },
2026-06-16T09:36:12.5529409Z             {
2026-06-16T09:36:12.5529620Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-16T09:36:12.5529772Z               "line": 16
2026-06-16T09:36:12.5529897Z             }
2026-06-16T09:36:12.5530034Z           ]
2026-06-16T09:36:12.5530155Z         },
2026-06-16T09:36:12.5530283Z         "int": {
2026-06-16T09:36:12.5530444Z           "complete": false,
2026-06-16T09:36:12.5530597Z           "evidence": []
2026-06-16T09:36:12.5530721Z         },
2026-06-16T09:36:12.5530855Z         "unit": {
2026-06-16T09:36:12.5531002Z           "complete": true,
2026-06-16T09:36:12.5531132Z           "evidence": [
2026-06-16T09:36:12.5531264Z             {
2026-06-16T09:36:12.5531481Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5531631Z               "line": 199
2026-06-16T09:36:12.5531764Z             },
2026-06-16T09:36:12.5531887Z             {
2026-06-16T09:36:12.5532115Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5532258Z               "line": 218
2026-06-16T09:36:12.5532387Z             },
2026-06-16T09:36:12.5532639Z             {
2026-06-16T09:36:12.5532859Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5533007Z               "line": 234
2026-06-16T09:36:12.5533126Z             },
2026-06-16T09:36:12.5533259Z             {
2026-06-16T09:36:12.5533574Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-16T09:36:12.5533723Z               "line": 256
2026-06-16T09:36:12.5533855Z             },
2026-06-16T09:36:12.5533985Z             {
2026-06-16T09:36:12.5534203Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-16T09:36:12.5534343Z               "line": 124
2026-06-16T09:36:12.5534474Z             },
2026-06-16T09:36:12.5534608Z             {
2026-06-16T09:36:12.5534817Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-16T09:36:12.5534965Z               "line": 140
2026-06-16T09:36:12.5535090Z             },
2026-06-16T09:36:12.5535217Z             {
2026-06-16T09:36:12.5535428Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-16T09:36:12.5535576Z               "line": 155
2026-06-16T09:36:12.5535700Z             }
2026-06-16T09:36:12.5535838Z           ]
2026-06-16T09:36:12.5535972Z         }
2026-06-16T09:36:12.5536100Z       }
2026-06-16T09:36:12.5536235Z     },
2026-06-16T09:36:12.5536367Z     {
2026-06-16T09:36:12.5536520Z       "id": "REQ-NOTIF-1",
2026-06-16T09:36:12.5537365Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-16T09:36:12.5537528Z       "requiredStages": [
2026-06-16T09:36:12.5537665Z         "impl",
2026-06-16T09:36:12.5537794Z         "unit",
2026-06-16T09:36:12.5537933Z         "int"
2026-06-16T09:36:12.5538061Z       ],
2026-06-16T09:36:12.5538200Z       "stages": {
2026-06-16T09:36:12.5538328Z         "doc": {
2026-06-16T09:36:12.5538487Z           "complete": false,
2026-06-16T09:36:12.5538638Z           "evidence": []
2026-06-16T09:36:12.5538767Z         },
2026-06-16T09:36:12.5538910Z         "impl": {
2026-06-16T09:36:12.5539140Z           "complete": true,
2026-06-16T09:36:12.5539286Z           "evidence": [
2026-06-16T09:36:12.5539426Z             {
2026-06-16T09:36:12.5539671Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.5539819Z               "line": 514
2026-06-16T09:36:12.5539942Z             },
2026-06-16T09:36:12.5540070Z             {
2026-06-16T09:36:12.5540270Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5540409Z               "line": 30
2026-06-16T09:36:12.5540533Z             },
2026-06-16T09:36:12.5540656Z             {
2026-06-16T09:36:12.5540872Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5541014Z               "line": 69
2026-06-16T09:36:12.5541138Z             },
2026-06-16T09:36:12.5541257Z             {
2026-06-16T09:36:12.5541477Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5541610Z               "line": 93
2026-06-16T09:36:12.5541745Z             },
2026-06-16T09:36:12.5541868Z             {
2026-06-16T09:36:12.5542069Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5542210Z               "line": 107
2026-06-16T09:36:12.5542339Z             },
2026-06-16T09:36:12.5542475Z             {
2026-06-16T09:36:12.5542685Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5542832Z               "line": 142
2026-06-16T09:36:12.5542966Z             },
2026-06-16T09:36:12.5543086Z             {
2026-06-16T09:36:12.5543286Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5543434Z               "line": 187
2026-06-16T09:36:12.5543567Z             },
2026-06-16T09:36:12.5543691Z             {
2026-06-16T09:36:12.5543901Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5544043Z               "line": 258
2026-06-16T09:36:12.5544172Z             },
2026-06-16T09:36:12.5544297Z             {
2026-06-16T09:36:12.5544502Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5544759Z               "line": 372
2026-06-16T09:36:12.5544874Z             },
2026-06-16T09:36:12.5545011Z             {
2026-06-16T09:36:12.5545220Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5545472Z               "line": 479
2026-06-16T09:36:12.5545602Z             },
2026-06-16T09:36:12.5545730Z             {
2026-06-16T09:36:12.5545965Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5546102Z               "line": 24
2026-06-16T09:36:12.5546241Z             },
2026-06-16T09:36:12.5546374Z             {
2026-06-16T09:36:12.5546598Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5546736Z               "line": 34
2026-06-16T09:36:12.5546861Z             },
2026-06-16T09:36:12.5546989Z             {
2026-06-16T09:36:12.5547209Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5547355Z               "line": 60
2026-06-16T09:36:12.5547484Z             },
2026-06-16T09:36:12.5547615Z             {
2026-06-16T09:36:12.5547850Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5547982Z               "line": 82
2026-06-16T09:36:12.5548117Z             },
2026-06-16T09:36:12.5548259Z             {
2026-06-16T09:36:12.5548474Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5548616Z               "line": 94
2026-06-16T09:36:12.5552151Z             },
2026-06-16T09:36:12.5552319Z             {
2026-06-16T09:36:12.5552563Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.5552714Z               "line": 96
2026-06-16T09:36:12.5552841Z             },
2026-06-16T09:36:12.5552970Z             {
2026-06-16T09:36:12.5553212Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-16T09:36:12.5553355Z               "line": 44
2026-06-16T09:36:12.5553483Z             },
2026-06-16T09:36:12.5553608Z             {
2026-06-16T09:36:12.5553827Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-16T09:36:12.5553984Z               "line": 20
2026-06-16T09:36:12.5554113Z             },
2026-06-16T09:36:12.5554242Z             {
2026-06-16T09:36:12.5554451Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-16T09:36:12.5554594Z               "line": 30
2026-06-16T09:36:12.5554723Z             },
2026-06-16T09:36:12.5554848Z             {
2026-06-16T09:36:12.5555057Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-16T09:36:12.5555196Z               "line": 50
2026-06-16T09:36:12.5555324Z             },
2026-06-16T09:36:12.5555444Z             {
2026-06-16T09:36:12.5555656Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5555805Z               "line": 28
2026-06-16T09:36:12.5555928Z             },
2026-06-16T09:36:12.5556057Z             {
2026-06-16T09:36:12.5556252Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5556401Z               "line": 126
2026-06-16T09:36:12.5556535Z             },
2026-06-16T09:36:12.5556672Z             {
2026-06-16T09:36:12.5556878Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5557021Z               "line": 161
2026-06-16T09:36:12.5557153Z             },
2026-06-16T09:36:12.5557282Z             {
2026-06-16T09:36:12.5557491Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5557635Z               "line": 202
2026-06-16T09:36:12.5557760Z             },
2026-06-16T09:36:12.5557887Z             {
2026-06-16T09:36:12.5558091Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5558237Z               "line": 213
2026-06-16T09:36:12.5558367Z             },
2026-06-16T09:36:12.5558485Z             {
2026-06-16T09:36:12.5558686Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5558833Z               "line": 238
2026-06-16T09:36:12.5559043Z             },
2026-06-16T09:36:12.5559176Z             {
2026-06-16T09:36:12.5559372Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5559664Z               "line": 261
2026-06-16T09:36:12.5559792Z             },
2026-06-16T09:36:12.5559917Z             {
2026-06-16T09:36:12.5560145Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5560383Z               "line": 82
2026-06-16T09:36:12.5560513Z             }
2026-06-16T09:36:12.5560646Z           ]
2026-06-16T09:36:12.5560773Z         },
2026-06-16T09:36:12.5560907Z         "int": {
2026-06-16T09:36:12.5561052Z           "complete": true,
2026-06-16T09:36:12.5561200Z           "evidence": [
2026-06-16T09:36:12.5561324Z             {
2026-06-16T09:36:12.5561553Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.5561700Z               "line": 285
2026-06-16T09:36:12.5561825Z             },
2026-06-16T09:36:12.5561954Z             {
2026-06-16T09:36:12.5562169Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-16T09:36:12.5562316Z               "line": 102
2026-06-16T09:36:12.5562450Z             },
2026-06-16T09:36:12.5562583Z             {
2026-06-16T09:36:12.5562808Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5562950Z               "line": 682
2026-06-16T09:36:12.5563080Z             },
2026-06-16T09:36:12.5563213Z             {
2026-06-16T09:36:12.5563440Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5563586Z               "line": 1100
2026-06-16T09:36:12.5563709Z             }
2026-06-16T09:36:12.5563839Z           ]
2026-06-16T09:36:12.5563962Z         },
2026-06-16T09:36:12.5564092Z         "unit": {
2026-06-16T09:36:12.5564234Z           "complete": true,
2026-06-16T09:36:12.5564382Z           "evidence": [
2026-06-16T09:36:12.5564511Z             {
2026-06-16T09:36:12.5564722Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5564863Z               "line": 572
2026-06-16T09:36:12.5564992Z             },
2026-06-16T09:36:12.5565121Z             {
2026-06-16T09:36:12.5565331Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5565474Z               "line": 636
2026-06-16T09:36:12.5565607Z             },
2026-06-16T09:36:12.5565732Z             {
2026-06-16T09:36:12.5565942Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5566089Z               "line": 740
2026-06-16T09:36:12.5566221Z             },
2026-06-16T09:36:12.5566345Z             {
2026-06-16T09:36:12.5566559Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5566704Z               "line": 772
2026-06-16T09:36:12.5566836Z             },
2026-06-16T09:36:12.5566971Z             {
2026-06-16T09:36:12.5567179Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5567333Z               "line": 840
2026-06-16T09:36:12.5567457Z             },
2026-06-16T09:36:12.5567591Z             {
2026-06-16T09:36:12.5567804Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5567939Z               "line": 898
2026-06-16T09:36:12.5568066Z             },
2026-06-16T09:36:12.5568195Z             {
2026-06-16T09:36:12.5568400Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5568543Z               "line": 1173
2026-06-16T09:36:12.5568675Z             },
2026-06-16T09:36:12.5568811Z             {
2026-06-16T09:36:12.5569112Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5569247Z               "line": 157
2026-06-16T09:36:12.5569370Z             },
2026-06-16T09:36:12.5569504Z             {
2026-06-16T09:36:12.5569736Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5569881Z               "line": 250
2026-06-16T09:36:12.5570004Z             },
2026-06-16T09:36:12.5570128Z             {
2026-06-16T09:36:12.5570352Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-16T09:36:12.5570491Z               "line": 273
2026-06-16T09:36:12.5570604Z             },
2026-06-16T09:36:12.5570734Z             {
2026-06-16T09:36:12.5570952Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.5571211Z               "line": 355
2026-06-16T09:36:12.5571333Z             },
2026-06-16T09:36:12.5571462Z             {
2026-06-16T09:36:12.5571683Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-16T09:36:12.5571917Z               "line": 392
2026-06-16T09:36:12.5572051Z             },
2026-06-16T09:36:12.5572161Z             {
2026-06-16T09:36:12.5572400Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-16T09:36:12.5572542Z               "line": 131
2026-06-16T09:36:12.5572671Z             },
2026-06-16T09:36:12.5572795Z             {
2026-06-16T09:36:12.5573000Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-16T09:36:12.5573143Z               "line": 72
2026-06-16T09:36:12.5573272Z             },
2026-06-16T09:36:12.5573397Z             {
2026-06-16T09:36:12.5573605Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-16T09:36:12.5573754Z               "line": 97
2026-06-16T09:36:12.5573881Z             },
2026-06-16T09:36:12.5574015Z             {
2026-06-16T09:36:12.5574226Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5574360Z               "line": 379
2026-06-16T09:36:12.5574484Z             },
2026-06-16T09:36:12.5574617Z             {
2026-06-16T09:36:12.5574822Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5574957Z               "line": 417
2026-06-16T09:36:12.5575095Z             },
2026-06-16T09:36:12.5575223Z             {
2026-06-16T09:36:12.5575414Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5575562Z               "line": 433
2026-06-16T09:36:12.5575686Z             },
2026-06-16T09:36:12.5575824Z             {
2026-06-16T09:36:12.5576019Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5576167Z               "line": 472
2026-06-16T09:36:12.5576302Z             },
2026-06-16T09:36:12.5576430Z             {
2026-06-16T09:36:12.5576635Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5576776Z               "line": 489
2026-06-16T09:36:12.5576905Z             },
2026-06-16T09:36:12.5577030Z             {
2026-06-16T09:36:12.5577230Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5577382Z               "line": 517
2026-06-16T09:36:12.5577507Z             },
2026-06-16T09:36:12.5577635Z             {
2026-06-16T09:36:12.5577826Z               "path": "crates/spt-store/src/notif.rs",
2026-06-16T09:36:12.5577968Z               "line": 548
2026-06-16T09:36:12.5578092Z             },
2026-06-16T09:36:12.5578222Z             {
2026-06-16T09:36:12.5578446Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5578580Z               "line": 741
2026-06-16T09:36:12.5578707Z             }
2026-06-16T09:36:12.5578833Z           ]
2026-06-16T09:36:12.5579045Z         }
2026-06-16T09:36:12.5579184Z       }
2026-06-16T09:36:12.5579291Z     },
2026-06-16T09:36:12.5579430Z     {
2026-06-16T09:36:12.5579606Z       "id": "REQ-NOTIF-2",
2026-06-16T09:36:12.5580197Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-16T09:36:12.5580349Z       "requiredStages": [
2026-06-16T09:36:12.5580488Z         "doc",
2026-06-16T09:36:12.5580625Z         "impl",
2026-06-16T09:36:12.5580756Z         "unit",
2026-06-16T09:36:12.5580879Z         "int"
2026-06-16T09:36:12.5580998Z       ],
2026-06-16T09:36:12.5581127Z       "stages": {
2026-06-16T09:36:12.5581250Z         "doc": {
2026-06-16T09:36:12.5581395Z           "complete": true,
2026-06-16T09:36:12.5581542Z           "evidence": [
2026-06-16T09:36:12.5581667Z             {
2026-06-16T09:36:12.5581822Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.5581955Z               "line": 454
2026-06-16T09:36:12.5582084Z             },
2026-06-16T09:36:12.5582201Z             {
2026-06-16T09:36:12.5582373Z               "path": "docs/MANIFEST.md",
2026-06-16T09:36:12.5582515Z               "line": 76
2026-06-16T09:36:12.5582755Z             }
2026-06-16T09:36:12.5582883Z           ]
2026-06-16T09:36:12.5583003Z         },
2026-06-16T09:36:12.5583131Z         "impl": {
2026-06-16T09:36:12.5583274Z           "complete": true,
2026-06-16T09:36:12.5583507Z           "evidence": [
2026-06-16T09:36:12.5583628Z             {
2026-06-16T09:36:12.5583846Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5583990Z               "line": 287
2026-06-16T09:36:12.5584118Z             },
2026-06-16T09:36:12.5584248Z             {
2026-06-16T09:36:12.5584455Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5584594Z               "line": 301
2026-06-16T09:36:12.5584725Z             },
2026-06-16T09:36:12.5584849Z             {
2026-06-16T09:36:12.5585059Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5585197Z               "line": 326
2026-06-16T09:36:12.5585331Z             },
2026-06-16T09:36:12.5585459Z             {
2026-06-16T09:36:12.5585693Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.5585842Z               "line": 199
2026-06-16T09:36:12.5585969Z             },
2026-06-16T09:36:12.5586098Z             {
2026-06-16T09:36:12.5586317Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5586471Z               "line": 91
2026-06-16T09:36:12.5586594Z             },
2026-06-16T09:36:12.5586727Z             {
2026-06-16T09:36:12.5586908Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5587057Z               "line": 2007
2026-06-16T09:36:12.5587186Z             },
2026-06-16T09:36:12.5587313Z             {
2026-06-16T09:36:12.5587500Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5587642Z               "line": 2056
2026-06-16T09:36:12.5587771Z             },
2026-06-16T09:36:12.5587900Z             {
2026-06-16T09:36:12.5588087Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5588234Z               "line": 2135
2026-06-16T09:36:12.5588367Z             },
2026-06-16T09:36:12.5588506Z             {
2026-06-16T09:36:12.5588686Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5588834Z               "line": 2174
2026-06-16T09:36:12.5589045Z             }
2026-06-16T09:36:12.5589182Z           ]
2026-06-16T09:36:12.5589311Z         },
2026-06-16T09:36:12.5589450Z         "int": {
2026-06-16T09:36:12.5589601Z           "complete": true,
2026-06-16T09:36:12.5589744Z           "evidence": [
2026-06-16T09:36:12.5589865Z             {
2026-06-16T09:36:12.5590100Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5590242Z               "line": 808
2026-06-16T09:36:12.5590372Z             },
2026-06-16T09:36:12.5590504Z             {
2026-06-16T09:36:12.5590738Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5590871Z               "line": 1343
2026-06-16T09:36:12.5591006Z             }
2026-06-16T09:36:12.5591129Z           ]
2026-06-16T09:36:12.5591258Z         },
2026-06-16T09:36:12.5591387Z         "unit": {
2026-06-16T09:36:12.5591534Z           "complete": true,
2026-06-16T09:36:12.5591678Z           "evidence": [
2026-06-16T09:36:12.5591801Z             {
2026-06-16T09:36:12.5592016Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5592164Z               "line": 1022
2026-06-16T09:36:12.5592284Z             },
2026-06-16T09:36:12.5592415Z             {
2026-06-16T09:36:12.5592616Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5592761Z               "line": 1090
2026-06-16T09:36:12.5592890Z             },
2026-06-16T09:36:12.5593015Z             {
2026-06-16T09:36:12.5593205Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5593339Z               "line": 7074
2026-06-16T09:36:12.5593466Z             },
2026-06-16T09:36:12.5593591Z             {
2026-06-16T09:36:12.5593767Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5593902Z               "line": 7129
2026-06-16T09:36:12.5594150Z             }
2026-06-16T09:36:12.5594272Z           ]
2026-06-16T09:36:12.5594392Z         }
2026-06-16T09:36:12.5594517Z       }
2026-06-16T09:36:12.5594644Z     },
2026-06-16T09:36:12.5594770Z     {
2026-06-16T09:36:12.5595044Z       "id": "REQ-PAIR-1",
2026-06-16T09:36:12.5595229Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-16T09:36:12.5595389Z       "requiredStages": [
2026-06-16T09:36:12.5595514Z         "impl",
2026-06-16T09:36:12.5595647Z         "unit",
2026-06-16T09:36:12.5595772Z         "int"
2026-06-16T09:36:12.5595896Z       ],
2026-06-16T09:36:12.5596033Z       "stages": {
2026-06-16T09:36:12.5596162Z         "doc": {
2026-06-16T09:36:12.5596319Z           "complete": false,
2026-06-16T09:36:12.5596468Z           "evidence": []
2026-06-16T09:36:12.5596596Z         },
2026-06-16T09:36:12.5596731Z         "impl": {
2026-06-16T09:36:12.5596897Z           "complete": true,
2026-06-16T09:36:12.5597026Z           "evidence": [
2026-06-16T09:36:12.5597154Z             {
2026-06-16T09:36:12.5597403Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.5597545Z               "line": 27
2026-06-16T09:36:12.5597665Z             },
2026-06-16T09:36:12.5597793Z             {
2026-06-16T09:36:12.5598050Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.5598188Z               "line": 88
2026-06-16T09:36:12.5598322Z             },
2026-06-16T09:36:12.5598455Z             {
2026-06-16T09:36:12.5598694Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.5598831Z               "line": 110
2026-06-16T09:36:12.5599037Z             },
2026-06-16T09:36:12.5599160Z             {
2026-06-16T09:36:12.5599404Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.5599557Z               "line": 153
2026-06-16T09:36:12.5599690Z             },
2026-06-16T09:36:12.5599814Z             {
2026-06-16T09:36:12.5600047Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.5600194Z               "line": 182
2026-06-16T09:36:12.5600318Z             },
2026-06-16T09:36:12.5600444Z             {
2026-06-16T09:36:12.5600679Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-16T09:36:12.5600831Z               "line": 29
2026-06-16T09:36:12.5600956Z             },
2026-06-16T09:36:12.5601083Z             {
2026-06-16T09:36:12.5601346Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-16T09:36:12.5601494Z               "line": 31
2026-06-16T09:36:12.5601623Z             },
2026-06-16T09:36:12.5601746Z             {
2026-06-16T09:36:12.5601985Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5602128Z               "line": 44
2026-06-16T09:36:12.5602261Z             },
2026-06-16T09:36:12.5602390Z             {
2026-06-16T09:36:12.5602628Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5602772Z               "line": 171
2026-06-16T09:36:12.5602905Z             },
2026-06-16T09:36:12.5603032Z             {
2026-06-16T09:36:12.5603269Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5603412Z               "line": 376
2026-06-16T09:36:12.5603541Z             }
2026-06-16T09:36:12.5603669Z           ]
2026-06-16T09:36:12.5603799Z         },
2026-06-16T09:36:12.5603932Z         "int": {
2026-06-16T09:36:12.5604085Z           "complete": true,
2026-06-16T09:36:12.5604228Z           "evidence": [
2026-06-16T09:36:12.5604356Z             {
2026-06-16T09:36:12.5604580Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5604734Z               "line": 643
2026-06-16T09:36:12.5604861Z             },
2026-06-16T09:36:12.5604990Z             {
2026-06-16T09:36:12.5605219Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5605363Z               "line": 885
2026-06-16T09:36:12.5605491Z             }
2026-06-16T09:36:12.5605613Z           ]
2026-06-16T09:36:12.5605854Z         },
2026-06-16T09:36:12.5605998Z         "unit": {
2026-06-16T09:36:12.5606146Z           "complete": true,
2026-06-16T09:36:12.5606288Z           "evidence": [
2026-06-16T09:36:12.5606417Z             {
2026-06-16T09:36:12.5606666Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.5606908Z               "line": 236
2026-06-16T09:36:12.5607038Z             },
2026-06-16T09:36:12.5607165Z             {
2026-06-16T09:36:12.5607424Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-16T09:36:12.5607567Z               "line": 349
2026-06-16T09:36:12.5607700Z             },
2026-06-16T09:36:12.5607829Z             {
2026-06-16T09:36:12.5608071Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-16T09:36:12.5608212Z               "line": 194
2026-06-16T09:36:12.5608339Z             },
2026-06-16T09:36:12.5608462Z             {
2026-06-16T09:36:12.5608700Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-16T09:36:12.5608833Z               "line": 216
2026-06-16T09:36:12.5609053Z             },
2026-06-16T09:36:12.5609182Z             {
2026-06-16T09:36:12.5609434Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-16T09:36:12.5609578Z               "line": 230
2026-06-16T09:36:12.5609706Z             },
2026-06-16T09:36:12.5609831Z             {
2026-06-16T09:36:12.5610069Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-16T09:36:12.5610213Z               "line": 242
2026-06-16T09:36:12.5610340Z             },
2026-06-16T09:36:12.5610460Z             {
2026-06-16T09:36:12.5610706Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-16T09:36:12.5610849Z               "line": 256
2026-06-16T09:36:12.5610967Z             },
2026-06-16T09:36:12.5611095Z             {
2026-06-16T09:36:12.5611329Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-16T09:36:12.5611472Z               "line": 270
2026-06-16T09:36:12.5611596Z             },
2026-06-16T09:36:12.5611739Z             {
2026-06-16T09:36:12.5611973Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-16T09:36:12.5612112Z               "line": 277
2026-06-16T09:36:12.5612240Z             },
2026-06-16T09:36:12.5612373Z             {
2026-06-16T09:36:12.5612612Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-16T09:36:12.5612755Z               "line": 295
2026-06-16T09:36:12.5612883Z             },
2026-06-16T09:36:12.5613008Z             {
2026-06-16T09:36:12.5613246Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5613390Z               "line": 968
2026-06-16T09:36:12.5613522Z             },
2026-06-16T09:36:12.5613650Z             {
2026-06-16T09:36:12.5613886Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5614034Z               "line": 1051
2026-06-16T09:36:12.5614158Z             },
2026-06-16T09:36:12.5614291Z             {
2026-06-16T09:36:12.5614529Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5614674Z               "line": 1121
2026-06-16T09:36:12.5614807Z             },
2026-06-16T09:36:12.5614935Z             {
2026-06-16T09:36:12.5615169Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5615313Z               "line": 1182
2026-06-16T09:36:12.5615440Z             },
2026-06-16T09:36:12.5615570Z             {
2026-06-16T09:36:12.5615803Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5615952Z               "line": 1238
2026-06-16T09:36:12.5616074Z             },
2026-06-16T09:36:12.5616202Z             {
2026-06-16T09:36:12.5616438Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5616586Z               "line": 1457
2026-06-16T09:36:12.5616725Z             }
2026-06-16T09:36:12.5616848Z           ]
2026-06-16T09:36:12.5616982Z         }
2026-06-16T09:36:12.5617106Z       }
2026-06-16T09:36:12.5617241Z     },
2026-06-16T09:36:12.5617483Z     {
2026-06-16T09:36:12.5617626Z       "id": "REQ-PAIR-2",
2026-06-16T09:36:12.5617889Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-16T09:36:12.5618045Z       "requiredStages": [],
2026-06-16T09:36:12.5618279Z       "stages": {
2026-06-16T09:36:12.5618408Z         "doc": {
2026-06-16T09:36:12.5618566Z           "complete": false,
2026-06-16T09:36:12.5618713Z           "evidence": []
2026-06-16T09:36:12.5618838Z         },
2026-06-16T09:36:12.5619022Z         "impl": {
2026-06-16T09:36:12.5619170Z           "complete": false,
2026-06-16T09:36:12.5619322Z           "evidence": []
2026-06-16T09:36:12.5619461Z         },
2026-06-16T09:36:12.5619604Z         "int": {
2026-06-16T09:36:12.5619742Z           "complete": false,
2026-06-16T09:36:12.5619886Z           "evidence": []
2026-06-16T09:36:12.5620018Z         },
2026-06-16T09:36:12.5620148Z         "unit": {
2026-06-16T09:36:12.5620295Z           "complete": false,
2026-06-16T09:36:12.5620440Z           "evidence": []
2026-06-16T09:36:12.5620562Z         }
2026-06-16T09:36:12.5620687Z       }
2026-06-16T09:36:12.5620820Z     },
2026-06-16T09:36:12.5620943Z     {
2026-06-16T09:36:12.5621097Z       "id": "REQ-PAIR-3",
2026-06-16T09:36:12.5621372Z       "title": "Fetch current pairing code from any paired node",
2026-06-16T09:36:12.5621536Z       "requiredStages": [
2026-06-16T09:36:12.5621665Z         "impl",
2026-06-16T09:36:12.5621785Z         "unit"
2026-06-16T09:36:12.5621912Z       ],
2026-06-16T09:36:12.5622042Z       "stages": {
2026-06-16T09:36:12.5622184Z         "doc": {
2026-06-16T09:36:12.5622329Z           "complete": false,
2026-06-16T09:36:12.5622475Z           "evidence": []
2026-06-16T09:36:12.5622605Z         },
2026-06-16T09:36:12.5622738Z         "impl": {
2026-06-16T09:36:12.5622890Z           "complete": true,
2026-06-16T09:36:12.5623038Z           "evidence": [
2026-06-16T09:36:12.5623162Z             {
2026-06-16T09:36:12.5623344Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5623491Z               "line": 2945
2026-06-16T09:36:12.5623622Z             },
2026-06-16T09:36:12.5623748Z             {
2026-06-16T09:36:12.5623941Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5624082Z               "line": 3014
2026-06-16T09:36:12.5624219Z             },
2026-06-16T09:36:12.5624347Z             {
2026-06-16T09:36:12.5624522Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5624666Z               "line": 3395
2026-06-16T09:36:12.5624794Z             },
2026-06-16T09:36:12.5624924Z             {
2026-06-16T09:36:12.5625095Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5625238Z               "line": 4640
2026-06-16T09:36:12.5625367Z             }
2026-06-16T09:36:12.5625495Z           ]
2026-06-16T09:36:12.5625619Z         },
2026-06-16T09:36:12.5625752Z         "int": {
2026-06-16T09:36:12.5625906Z           "complete": false,
2026-06-16T09:36:12.5626053Z           "evidence": []
2026-06-16T09:36:12.5626188Z         },
2026-06-16T09:36:12.5626334Z         "unit": {
2026-06-16T09:36:12.5626479Z           "complete": true,
2026-06-16T09:36:12.5626620Z           "evidence": [
2026-06-16T09:36:12.5626748Z             {
2026-06-16T09:36:12.5626933Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5627084Z               "line": 8790
2026-06-16T09:36:12.5627214Z             },
2026-06-16T09:36:12.5627346Z             {
2026-06-16T09:36:12.5627519Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5627666Z               "line": 9005
2026-06-16T09:36:12.5627791Z             },
2026-06-16T09:36:12.5627919Z             {
2026-06-16T09:36:12.5628087Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5628234Z               "line": 9626
2026-06-16T09:36:12.5628377Z             },
2026-06-16T09:36:12.5628501Z             {
2026-06-16T09:36:12.5628687Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5628830Z               "line": 9645
2026-06-16T09:36:12.5629154Z             },
2026-06-16T09:36:12.5629293Z             {
2026-06-16T09:36:12.5629474Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5629624Z               "line": 9669
2026-06-16T09:36:12.5629749Z             },
2026-06-16T09:36:12.5629983Z             {
2026-06-16T09:36:12.5630164Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5630308Z               "line": 9688
2026-06-16T09:36:12.5630436Z             },
2026-06-16T09:36:12.5630564Z             {
2026-06-16T09:36:12.5630746Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5630889Z               "line": 9701
2026-06-16T09:36:12.5631014Z             },
2026-06-16T09:36:12.5631137Z             {
2026-06-16T09:36:12.5631319Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5631461Z               "line": 9710
2026-06-16T09:36:12.5631586Z             }
2026-06-16T09:36:12.5631713Z           ]
2026-06-16T09:36:12.5631841Z         }
2026-06-16T09:36:12.5631970Z       }
2026-06-16T09:36:12.5632092Z     },
2026-06-16T09:36:12.5632221Z     {
2026-06-16T09:36:12.5632373Z       "id": "REQ-PAIR-4",
2026-06-16T09:36:12.5632569Z       "title": "Subnet naming on first pairing",
2026-06-16T09:36:12.5632730Z       "requiredStages": [
2026-06-16T09:36:12.5632864Z         "impl",
2026-06-16T09:36:12.5632998Z         "unit"
2026-06-16T09:36:12.5633117Z       ],
2026-06-16T09:36:12.5633256Z       "stages": {
2026-06-16T09:36:12.5633388Z         "doc": {
2026-06-16T09:36:12.5633533Z           "complete": false,
2026-06-16T09:36:12.5633684Z           "evidence": []
2026-06-16T09:36:12.5633804Z         },
2026-06-16T09:36:12.5633937Z         "impl": {
2026-06-16T09:36:12.5634085Z           "complete": true,
2026-06-16T09:36:12.5634233Z           "evidence": [
2026-06-16T09:36:12.5634357Z             {
2026-06-16T09:36:12.5634571Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-16T09:36:12.5634727Z               "line": 174
2026-06-16T09:36:12.5634847Z             }
2026-06-16T09:36:12.5634973Z           ]
2026-06-16T09:36:12.5635102Z         },
2026-06-16T09:36:12.5635241Z         "int": {
2026-06-16T09:36:12.5635392Z           "complete": false,
2026-06-16T09:36:12.5635541Z           "evidence": []
2026-06-16T09:36:12.5635669Z         },
2026-06-16T09:36:12.5635799Z         "unit": {
2026-06-16T09:36:12.5635950Z           "complete": true,
2026-06-16T09:36:12.5636095Z           "evidence": [
2026-06-16T09:36:12.5636232Z             {
2026-06-16T09:36:12.5636471Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5636628Z               "line": 1294
2026-06-16T09:36:12.5636757Z             }
2026-06-16T09:36:12.5636875Z           ]
2026-06-16T09:36:12.5637000Z         }
2026-06-16T09:36:12.5637129Z       }
2026-06-16T09:36:12.5637251Z     },
2026-06-16T09:36:12.5637376Z     {
2026-06-16T09:36:12.5637526Z       "id": "REQ-PAIR-5",
2026-06-16T09:36:12.5638216Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-16T09:36:12.5638370Z       "requiredStages": [
2026-06-16T09:36:12.5638494Z         "impl",
2026-06-16T09:36:12.5638623Z         "unit",
2026-06-16T09:36:12.5638756Z         "int"
2026-06-16T09:36:12.5638889Z       ],
2026-06-16T09:36:12.5639104Z       "stages": {
2026-06-16T09:36:12.5639242Z         "doc": {
2026-06-16T09:36:12.5639390Z           "complete": false,
2026-06-16T09:36:12.5639533Z           "evidence": []
2026-06-16T09:36:12.5639658Z         },
2026-06-16T09:36:12.5639796Z         "impl": {
2026-06-16T09:36:12.5639939Z           "complete": true,
2026-06-16T09:36:12.5640090Z           "evidence": [
2026-06-16T09:36:12.5640218Z             {
2026-06-16T09:36:12.5640456Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5640606Z               "line": 44
2026-06-16T09:36:12.5640734Z             },
2026-06-16T09:36:12.5640868Z             {
2026-06-16T09:36:12.5641110Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5641382Z               "line": 96
2026-06-16T09:36:12.5641507Z             },
2026-06-16T09:36:12.5641635Z             {
2026-06-16T09:36:12.5641874Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5642016Z               "line": 107
2026-06-16T09:36:12.5642232Z             },
2026-06-16T09:36:12.5642354Z             {
2026-06-16T09:36:12.5642591Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5642742Z               "line": 124
2026-06-16T09:36:12.5642867Z             },
2026-06-16T09:36:12.5642999Z             {
2026-06-16T09:36:12.5643234Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5643381Z               "line": 155
2026-06-16T09:36:12.5643506Z             },
2026-06-16T09:36:12.5643633Z             {
2026-06-16T09:36:12.5643877Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5644015Z               "line": 195
2026-06-16T09:36:12.5644150Z             },
2026-06-16T09:36:12.5644268Z             {
2026-06-16T09:36:12.5644511Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5644650Z               "line": 251
2026-06-16T09:36:12.5644775Z             },
2026-06-16T09:36:12.5644917Z             {
2026-06-16T09:36:12.5645188Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-16T09:36:12.5645340Z               "line": 33
2026-06-16T09:36:12.5645458Z             },
2026-06-16T09:36:12.5645590Z             {
2026-06-16T09:36:12.5645871Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-16T09:36:12.5646011Z               "line": 45
2026-06-16T09:36:12.5646139Z             },
2026-06-16T09:36:12.5646267Z             {
2026-06-16T09:36:12.5646549Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-16T09:36:12.5646697Z               "line": 59
2026-06-16T09:36:12.5646825Z             },
2026-06-16T09:36:12.5646955Z             {
2026-06-16T09:36:12.5647188Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5647336Z               "line": 376
2026-06-16T09:36:12.5647464Z             }
2026-06-16T09:36:12.5647594Z           ]
2026-06-16T09:36:12.5647722Z         },
2026-06-16T09:36:12.5647849Z         "int": {
2026-06-16T09:36:12.5647997Z           "complete": true,
2026-06-16T09:36:12.5648142Z           "evidence": [
2026-06-16T09:36:12.5648272Z             {
2026-06-16T09:36:12.5648490Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5648640Z               "line": 885
2026-06-16T09:36:12.5648767Z             },
2026-06-16T09:36:12.5648893Z             {
2026-06-16T09:36:12.5649207Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5649354Z               "line": 342
2026-06-16T09:36:12.5649488Z             }
2026-06-16T09:36:12.5649617Z           ]
2026-06-16T09:36:12.5649749Z         },
2026-06-16T09:36:12.5649879Z         "unit": {
2026-06-16T09:36:12.5650031Z           "complete": true,
2026-06-16T09:36:12.5650180Z           "evidence": [
2026-06-16T09:36:12.5650307Z             {
2026-06-16T09:36:12.5650547Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5650683Z               "line": 293
2026-06-16T09:36:12.5650826Z             },
2026-06-16T09:36:12.5650960Z             {
2026-06-16T09:36:12.5651185Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5651336Z               "line": 304
2026-06-16T09:36:12.5651461Z             },
2026-06-16T09:36:12.5651599Z             {
2026-06-16T09:36:12.5651838Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.5651980Z               "line": 406
2026-06-16T09:36:12.5652110Z             },
2026-06-16T09:36:12.5652233Z             {
2026-06-16T09:36:12.5652519Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-16T09:36:12.5652653Z               "line": 72
2026-06-16T09:36:12.5652787Z             },
2026-06-16T09:36:12.5653033Z             {
2026-06-16T09:36:12.5653311Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-16T09:36:12.5656508Z               "line": 82
2026-06-16T09:36:12.5656666Z             },
2026-06-16T09:36:12.5656952Z             {
2026-06-16T09:36:12.5657253Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-16T09:36:12.5657400Z               "line": 100
2026-06-16T09:36:12.5657525Z             },
2026-06-16T09:36:12.5657657Z             {
2026-06-16T09:36:12.5657929Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-16T09:36:12.5658072Z               "line": 110
2026-06-16T09:36:12.5658202Z             },
2026-06-16T09:36:12.5658324Z             {
2026-06-16T09:36:12.5658603Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-16T09:36:12.5658745Z               "line": 125
2026-06-16T09:36:12.5658875Z             },
2026-06-16T09:36:12.5659085Z             {
2026-06-16T09:36:12.5659337Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5659495Z               "line": 1044
2026-06-16T09:36:12.5659623Z             },
2026-06-16T09:36:12.5659748Z             {
2026-06-16T09:36:12.5659986Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5660134Z               "line": 1110
2026-06-16T09:36:12.5660262Z             },
2026-06-16T09:36:12.5660377Z             {
2026-06-16T09:36:12.5660620Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.5660764Z               "line": 1357
2026-06-16T09:36:12.5660891Z             }
2026-06-16T09:36:12.5661017Z           ]
2026-06-16T09:36:12.5661144Z         }
2026-06-16T09:36:12.5661271Z       }
2026-06-16T09:36:12.5661396Z     },
2026-06-16T09:36:12.5661520Z     {
2026-06-16T09:36:12.5661668Z       "id": "REQ-PAIR-6",
2026-06-16T09:36:12.5662254Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-16T09:36:12.5662412Z       "requiredStages": [
2026-06-16T09:36:12.5662535Z         "impl",
2026-06-16T09:36:12.5662656Z         "unit"
2026-06-16T09:36:12.5662779Z       ],
2026-06-16T09:36:12.5662918Z       "stages": {
2026-06-16T09:36:12.5663047Z         "doc": {
2026-06-16T09:36:12.5663203Z           "complete": false,
2026-06-16T09:36:12.5663347Z           "evidence": []
2026-06-16T09:36:12.5663469Z         },
2026-06-16T09:36:12.5663608Z         "impl": {
2026-06-16T09:36:12.5663753Z           "complete": true,
2026-06-16T09:36:12.5663896Z           "evidence": [
2026-06-16T09:36:12.5664021Z             {
2026-06-16T09:36:12.5664201Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5664344Z               "line": 3014
2026-06-16T09:36:12.5664468Z             },
2026-06-16T09:36:12.5664598Z             {
2026-06-16T09:36:12.5664773Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5664917Z               "line": 3395
2026-06-16T09:36:12.5665045Z             },
2026-06-16T09:36:12.5665179Z             {
2026-06-16T09:36:12.5665384Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.5665518Z               "line": 18
2026-06-16T09:36:12.5665650Z             },
2026-06-16T09:36:12.5665785Z             {
2026-06-16T09:36:12.5665988Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.5666129Z               "line": 49
2026-06-16T09:36:12.5666262Z             },
2026-06-16T09:36:12.5666389Z             {
2026-06-16T09:36:12.5666583Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.5666734Z               "line": 318
2026-06-16T09:36:12.5666864Z             }
2026-06-16T09:36:12.5666987Z           ]
2026-06-16T09:36:12.5667107Z         },
2026-06-16T09:36:12.5667246Z         "int": {
2026-06-16T09:36:12.5667407Z           "complete": false,
2026-06-16T09:36:12.5667536Z           "evidence": []
2026-06-16T09:36:12.5667669Z         },
2026-06-16T09:36:12.5667799Z         "unit": {
2026-06-16T09:36:12.5668080Z           "complete": true,
2026-06-16T09:36:12.5668226Z           "evidence": [
2026-06-16T09:36:12.5668356Z             {
2026-06-16T09:36:12.5668531Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5668676Z               "line": 9723
2026-06-16T09:36:12.5668903Z             },
2026-06-16T09:36:12.5669154Z             {
2026-06-16T09:36:12.5669421Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5669645Z               "line": 9740
2026-06-16T09:36:12.5669812Z             },
2026-06-16T09:36:12.5669944Z             {
2026-06-16T09:36:12.5670146Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.5670294Z               "line": 383
2026-06-16T09:36:12.5670422Z             },
2026-06-16T09:36:12.5670560Z             {
2026-06-16T09:36:12.5670746Z               "path": "crates/spt/src/elevation.rs",
2026-06-16T09:36:12.5670889Z               "line": 392
2026-06-16T09:36:12.5671019Z             }
2026-06-16T09:36:12.5671151Z           ]
2026-06-16T09:36:12.5671286Z         }
2026-06-16T09:36:12.5671413Z       }
2026-06-16T09:36:12.5671538Z     },
2026-06-16T09:36:12.5671658Z     {
2026-06-16T09:36:12.5671804Z       "id": "REQ-PAIR-7",
2026-06-16T09:36:12.5672137Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-16T09:36:12.5672295Z       "requiredStages": [],
2026-06-16T09:36:12.5672442Z       "stages": {
2026-06-16T09:36:12.5672573Z         "doc": {
2026-06-16T09:36:12.5672719Z           "complete": false,
2026-06-16T09:36:12.5672857Z           "evidence": []
2026-06-16T09:36:12.5672991Z         },
2026-06-16T09:36:12.5673138Z         "impl": {
2026-06-16T09:36:12.5673296Z           "complete": false,
2026-06-16T09:36:12.5673453Z           "evidence": []
2026-06-16T09:36:12.5673573Z         },
2026-06-16T09:36:12.5673701Z         "int": {
2026-06-16T09:36:12.5673851Z           "complete": false,
2026-06-16T09:36:12.5673997Z           "evidence": []
2026-06-16T09:36:12.5674120Z         },
2026-06-16T09:36:12.5674253Z         "unit": {
2026-06-16T09:36:12.5674408Z           "complete": false,
2026-06-16T09:36:12.5674557Z           "evidence": []
2026-06-16T09:36:12.5674680Z         }
2026-06-16T09:36:12.5674810Z       }
2026-06-16T09:36:12.5674938Z     },
2026-06-16T09:36:12.5675066Z     {
2026-06-16T09:36:12.5675210Z       "id": "REQ-PAIR-8",
2026-06-16T09:36:12.5678248Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-16T09:36:12.5678416Z       "requiredStages": [
2026-06-16T09:36:12.5678548Z         "impl",
2026-06-16T09:36:12.5678669Z         "unit"
2026-06-16T09:36:12.5678796Z       ],
2026-06-16T09:36:12.5679003Z       "stages": {
2026-06-16T09:36:12.5679150Z         "doc": {
2026-06-16T09:36:12.5679303Z           "complete": false,
2026-06-16T09:36:12.5679454Z           "evidence": []
2026-06-16T09:36:12.5679573Z         },
2026-06-16T09:36:12.5679715Z         "impl": {
2026-06-16T09:36:12.5679885Z           "complete": true,
2026-06-16T09:36:12.5680030Z           "evidence": [
2026-06-16T09:36:12.5680157Z             {
2026-06-16T09:36:12.5680391Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.5680534Z               "line": 577
2026-06-16T09:36:12.5680672Z             },
2026-06-16T09:36:12.5680800Z             {
2026-06-16T09:36:12.5681044Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-16T09:36:12.5681188Z               "line": 22
2026-06-16T09:36:12.5681315Z             },
2026-06-16T09:36:12.5681454Z             {
2026-06-16T09:36:12.5681693Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-16T09:36:12.5681836Z               "line": 76
2026-06-16T09:36:12.5682098Z             },
2026-06-16T09:36:12.5682227Z             {
2026-06-16T09:36:12.5682468Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-16T09:36:12.5682607Z               "line": 127
2026-06-16T09:36:12.5682735Z             }
2026-06-16T09:36:12.5682960Z           ]
2026-06-16T09:36:12.5683089Z         },
2026-06-16T09:36:12.5683222Z         "int": {
2026-06-16T09:36:12.5683374Z           "complete": false,
2026-06-16T09:36:12.5683518Z           "evidence": []
2026-06-16T09:36:12.5683646Z         },
2026-06-16T09:36:12.5683786Z         "unit": {
2026-06-16T09:36:12.5683933Z           "complete": true,
2026-06-16T09:36:12.5684082Z           "evidence": [
2026-06-16T09:36:12.5684213Z             {
2026-06-16T09:36:12.5684453Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-16T09:36:12.5684599Z               "line": 183
2026-06-16T09:36:12.5684728Z             },
2026-06-16T09:36:12.5684859Z             {
2026-06-16T09:36:12.5685098Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-16T09:36:12.5685250Z               "line": 195
2026-06-16T09:36:12.5685384Z             },
2026-06-16T09:36:12.5685507Z             {
2026-06-16T09:36:12.5685742Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-16T09:36:12.5685889Z               "line": 211
2026-06-16T09:36:12.5686028Z             },
2026-06-16T09:36:12.5686147Z             {
2026-06-16T09:36:12.5686381Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-16T09:36:12.5686533Z               "line": 227
2026-06-16T09:36:12.5686662Z             }
2026-06-16T09:36:12.5686780Z           ]
2026-06-16T09:36:12.5686900Z         }
2026-06-16T09:36:12.5687025Z       }
2026-06-16T09:36:12.5687143Z     },
2026-06-16T09:36:12.5687268Z     {
2026-06-16T09:36:12.5687414Z       "id": "REQ-PRES-1",
2026-06-16T09:36:12.5690595Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-16T09:36:12.5690765Z       "requiredStages": [
2026-06-16T09:36:12.5690903Z         "impl",
2026-06-16T09:36:12.5691027Z         "unit",
2026-06-16T09:36:12.5691157Z         "int"
2026-06-16T09:36:12.5691276Z       ],
2026-06-16T09:36:12.5691414Z       "stages": {
2026-06-16T09:36:12.5691537Z         "doc": {
2026-06-16T09:36:12.5691690Z           "complete": true,
2026-06-16T09:36:12.5691838Z           "evidence": [
2026-06-16T09:36:12.5691961Z             {
2026-06-16T09:36:12.5692130Z               "path": "docs/DEFERRED.md",
2026-06-16T09:36:12.5692258Z               "line": 11
2026-06-16T09:36:12.5692397Z             }
2026-06-16T09:36:12.5692519Z           ]
2026-06-16T09:36:12.5692634Z         },
2026-06-16T09:36:12.5692783Z         "impl": {
2026-06-16T09:36:12.5692934Z           "complete": true,
2026-06-16T09:36:12.5693082Z           "evidence": [
2026-06-16T09:36:12.5693210Z             {
2026-06-16T09:36:12.5693444Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.5693610Z               "line": 515
2026-06-16T09:36:12.5693744Z             },
2026-06-16T09:36:12.5693872Z             {
2026-06-16T09:36:12.5694092Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.5694240Z               "line": 567
2026-06-16T09:36:12.5694370Z             },
2026-06-16T09:36:12.5694497Z             {
2026-06-16T09:36:12.5694703Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5694845Z               "line": 188
2026-06-16T09:36:12.5694976Z             },
2026-06-16T09:36:12.5695102Z             {
2026-06-16T09:36:12.5695307Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5695438Z               "line": 214
2026-06-16T09:36:12.5695697Z             },
2026-06-16T09:36:12.5695824Z             {
2026-06-16T09:36:12.5696053Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-16T09:36:12.5696201Z               "line": 28
2026-06-16T09:36:12.5696415Z             },
2026-06-16T09:36:12.5696540Z             {
2026-06-16T09:36:12.5696768Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-16T09:36:12.5696917Z               "line": 105
2026-06-16T09:36:12.5697050Z             },
2026-06-16T09:36:12.5697179Z             {
2026-06-16T09:36:12.5697393Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-16T09:36:12.5697523Z               "line": 161
2026-06-16T09:36:12.5697655Z             },
2026-06-16T09:36:12.5697785Z             {
2026-06-16T09:36:12.5697998Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-16T09:36:12.5698140Z               "line": 180
2026-06-16T09:36:12.5698277Z             },
2026-06-16T09:36:12.5698400Z             {
2026-06-16T09:36:12.5698644Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5698802Z               "line": 415
2026-06-16T09:36:12.5698926Z             },
2026-06-16T09:36:12.5699136Z             {
2026-06-16T09:36:12.5699368Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5699545Z               "line": 289
2026-06-16T09:36:12.5699673Z             },
2026-06-16T09:36:12.5699799Z             {
2026-06-16T09:36:12.5700027Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5700170Z               "line": 336
2026-06-16T09:36:12.5700303Z             },
2026-06-16T09:36:12.5700433Z             {
2026-06-16T09:36:12.5700660Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5700812Z               "line": 362
2026-06-16T09:36:12.5700938Z             },
2026-06-16T09:36:12.5701063Z             {
2026-06-16T09:36:12.5701282Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.5701435Z               "line": 100
2026-06-16T09:36:12.5701558Z             }
2026-06-16T09:36:12.5701679Z           ]
2026-06-16T09:36:12.5701812Z         },
2026-06-16T09:36:12.5701945Z         "int": {
2026-06-16T09:36:12.5702107Z           "complete": true,
2026-06-16T09:36:12.5702250Z           "evidence": [
2026-06-16T09:36:12.5702380Z             {
2026-06-16T09:36:12.5702623Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.5702756Z               "line": 559
2026-06-16T09:36:12.5702889Z             },
2026-06-16T09:36:12.5703005Z             {
2026-06-16T09:36:12.5703223Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5703362Z               "line": 745
2026-06-16T09:36:12.5703498Z             },
2026-06-16T09:36:12.5703622Z             {
2026-06-16T09:36:12.5703846Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5703990Z               "line": 1163
2026-06-16T09:36:12.5704113Z             }
2026-06-16T09:36:12.5704248Z           ]
2026-06-16T09:36:12.5704377Z         },
2026-06-16T09:36:12.5704509Z         "unit": {
2026-06-16T09:36:12.5704662Z           "complete": true,
2026-06-16T09:36:12.5704805Z           "evidence": [
2026-06-16T09:36:12.5704939Z             {
2026-06-16T09:36:12.5705148Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.5705301Z               "line": 674
2026-06-16T09:36:12.5705429Z             },
2026-06-16T09:36:12.5705565Z             {
2026-06-16T09:36:12.5705785Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-16T09:36:12.5705933Z               "line": 238
2026-06-16T09:36:12.5706065Z             },
2026-06-16T09:36:12.5706194Z             {
2026-06-16T09:36:12.5706422Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-16T09:36:12.5706547Z               "line": 269
2026-06-16T09:36:12.5706689Z             },
2026-06-16T09:36:12.5706824Z             {
2026-06-16T09:36:12.5707028Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-16T09:36:12.5707295Z               "line": 305
2026-06-16T09:36:12.5707420Z             },
2026-06-16T09:36:12.5707548Z             {
2026-06-16T09:36:12.5707773Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-16T09:36:12.5708015Z               "line": 336
2026-06-16T09:36:12.5708149Z             },
2026-06-16T09:36:12.5708278Z             {
2026-06-16T09:36:12.5708530Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.5708677Z               "line": 1165
2026-06-16T09:36:12.5708809Z             },
2026-06-16T09:36:12.5709013Z             {
2026-06-16T09:36:12.5709242Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.5709386Z               "line": 1131
2026-06-16T09:36:12.5709514Z             }
2026-06-16T09:36:12.5709633Z           ]
2026-06-16T09:36:12.5709757Z         }
2026-06-16T09:36:12.5709881Z       }
2026-06-16T09:36:12.5710006Z     },
2026-06-16T09:36:12.5710139Z     {
2026-06-16T09:36:12.5710296Z       "id": "REQ-RC-1",
2026-06-16T09:36:12.5715060Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-16T09:36:12.5715245Z       "requiredStages": [
2026-06-16T09:36:12.5715389Z         "impl",
2026-06-16T09:36:12.5715518Z         "unit",
2026-06-16T09:36:12.5715651Z         "int"
2026-06-16T09:36:12.5715776Z       ],
2026-06-16T09:36:12.5715908Z       "stages": {
2026-06-16T09:36:12.5716057Z         "doc": {
2026-06-16T09:36:12.5716204Z           "complete": false,
2026-06-16T09:36:12.5716360Z           "evidence": []
2026-06-16T09:36:12.5716489Z         },
2026-06-16T09:36:12.5716630Z         "impl": {
2026-06-16T09:36:12.5716778Z           "complete": true,
2026-06-16T09:36:12.5716925Z           "evidence": [
2026-06-16T09:36:12.5717059Z             {
2026-06-16T09:36:12.5717269Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.5717417Z               "line": 895
2026-06-16T09:36:12.5717545Z             },
2026-06-16T09:36:12.5717685Z             {
2026-06-16T09:36:12.5717898Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.5718052Z               "line": 1168
2026-06-16T09:36:12.5718189Z             },
2026-06-16T09:36:12.5718314Z             {
2026-06-16T09:36:12.5718532Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.5718672Z               "line": 890
2026-06-16T09:36:12.5718809Z             },
2026-06-16T09:36:12.5718930Z             {
2026-06-16T09:36:12.5719232Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.5719379Z               "line": 924
2026-06-16T09:36:12.5719492Z             },
2026-06-16T09:36:12.5719626Z             {
2026-06-16T09:36:12.5719807Z               "path": "crates/spt/src/rc.rs",
2026-06-16T09:36:12.5719946Z               "line": 22
2026-06-16T09:36:12.5720069Z             },
2026-06-16T09:36:12.5720203Z             {
2026-06-16T09:36:12.5720380Z               "path": "crates/spt/src/rc.rs",
2026-06-16T09:36:12.5720523Z               "line": 181
2026-06-16T09:36:12.5720651Z             }
2026-06-16T09:36:12.5720780Z           ]
2026-06-16T09:36:12.5720910Z         },
2026-06-16T09:36:12.5721037Z         "int": {
2026-06-16T09:36:12.5721181Z           "complete": true,
2026-06-16T09:36:12.5721323Z           "evidence": [
2026-06-16T09:36:12.5721447Z             {
2026-06-16T09:36:12.5721681Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.5721941Z               "line": 252
2026-06-16T09:36:12.5722068Z             },
2026-06-16T09:36:12.5722197Z             {
2026-06-16T09:36:12.5722426Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.5722674Z               "line": 279
2026-06-16T09:36:12.5722799Z             },
2026-06-16T09:36:12.5722922Z             {
2026-06-16T09:36:12.5723142Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.5723294Z               "line": 404
2026-06-16T09:36:12.5723418Z             }
2026-06-16T09:36:12.5723552Z           ]
2026-06-16T09:36:12.5723675Z         },
2026-06-16T09:36:12.5723805Z         "unit": {
2026-06-16T09:36:12.5723952Z           "complete": true,
2026-06-16T09:36:12.5724092Z           "evidence": [
2026-06-16T09:36:12.5724219Z             {
2026-06-16T09:36:12.5724435Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.5724585Z               "line": 1245
2026-06-16T09:36:12.5724719Z             },
2026-06-16T09:36:12.5724839Z             {
2026-06-16T09:36:12.5725019Z               "path": "crates/spt/src/rc.rs",
2026-06-16T09:36:12.5725163Z               "line": 421
2026-06-16T09:36:12.5725295Z             },
2026-06-16T09:36:12.5725416Z             {
2026-06-16T09:36:12.5725595Z               "path": "crates/spt/src/rc.rs",
2026-06-16T09:36:12.5725744Z               "line": 450
2026-06-16T09:36:12.5725873Z             },
2026-06-16T09:36:12.5726002Z             {
2026-06-16T09:36:12.5726169Z               "path": "crates/spt/src/rc.rs",
2026-06-16T09:36:12.5726322Z               "line": 463
2026-06-16T09:36:12.5726449Z             }
2026-06-16T09:36:12.5726584Z           ]
2026-06-16T09:36:12.5726708Z         }
2026-06-16T09:36:12.5726835Z       }
2026-06-16T09:36:12.5726968Z     },
2026-06-16T09:36:12.5727096Z     {
2026-06-16T09:36:12.5727257Z       "id": "REQ-RCVIEW-1",
2026-06-16T09:36:12.5737812Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-16T09:36:12.5738045Z       "requiredStages": [
2026-06-16T09:36:12.5738175Z         "doc",
2026-06-16T09:36:12.5738308Z         "impl",
2026-06-16T09:36:12.5738436Z         "unit",
2026-06-16T09:36:12.5738566Z         "int"
2026-06-16T09:36:12.5738689Z       ],
2026-06-16T09:36:12.5738829Z       "stages": {
2026-06-16T09:36:12.5739032Z         "doc": {
2026-06-16T09:36:12.5739186Z           "complete": true,
2026-06-16T09:36:12.5739323Z           "evidence": [
2026-06-16T09:36:12.5739458Z             {
2026-06-16T09:36:12.5739615Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.5739909Z               "line": 323
2026-06-16T09:36:12.5740035Z             }
2026-06-16T09:36:12.5740150Z           ]
2026-06-16T09:36:12.5740276Z         },
2026-06-16T09:36:12.5740414Z         "impl": {
2026-06-16T09:36:12.5740565Z           "complete": true,
2026-06-16T09:36:12.5740828Z           "evidence": [
2026-06-16T09:36:12.5740956Z             {
2026-06-16T09:36:12.5741190Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-16T09:36:12.5741323Z               "line": 323
2026-06-16T09:36:12.5741452Z             },
2026-06-16T09:36:12.5741580Z             {
2026-06-16T09:36:12.5741809Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.5741947Z               "line": 430
2026-06-16T09:36:12.5742082Z             },
2026-06-16T09:36:12.5742219Z             {
2026-06-16T09:36:12.5742434Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.5742573Z               "line": 441
2026-06-16T09:36:12.5742698Z             },
2026-06-16T09:36:12.5742839Z             {
2026-06-16T09:36:12.5743052Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-16T09:36:12.5743203Z               "line": 41
2026-06-16T09:36:12.5743332Z             },
2026-06-16T09:36:12.5743456Z             {
2026-06-16T09:36:12.5743685Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-16T09:36:12.5743823Z               "line": 62
2026-06-16T09:36:12.5743953Z             },
2026-06-16T09:36:12.5744071Z             {
2026-06-16T09:36:12.5744272Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.5744419Z               "line": 251
2026-06-16T09:36:12.5744548Z             },
2026-06-16T09:36:12.5744676Z             {
2026-06-16T09:36:12.5744854Z               "path": "crates/spt/src/rc.rs",
2026-06-16T09:36:12.5744991Z               "line": 181
2026-06-16T09:36:12.5745120Z             }
2026-06-16T09:36:12.5745250Z           ]
2026-06-16T09:36:12.5745368Z         },
2026-06-16T09:36:12.5745493Z         "int": {
2026-06-16T09:36:12.5745644Z           "complete": true,
2026-06-16T09:36:12.5745786Z           "evidence": [
2026-06-16T09:36:12.5745921Z             {
2026-06-16T09:36:12.5746144Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.5746283Z               "line": 789
2026-06-16T09:36:12.5746425Z             },
2026-06-16T09:36:12.5746550Z             {
2026-06-16T09:36:12.5746783Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.5746922Z               "line": 829
2026-06-16T09:36:12.5747059Z             },
2026-06-16T09:36:12.5747179Z             {
2026-06-16T09:36:12.5747394Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.5747542Z               "line": 876
2026-06-16T09:36:12.5747670Z             },
2026-06-16T09:36:12.5747805Z             {
2026-06-16T09:36:12.5748031Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.5748174Z               "line": 988
2026-06-16T09:36:12.5748301Z             }
2026-06-16T09:36:12.5748434Z           ]
2026-06-16T09:36:12.5748568Z         },
2026-06-16T09:36:12.5748687Z         "unit": {
2026-06-16T09:36:12.5748845Z           "complete": true,
2026-06-16T09:36:12.5749069Z           "evidence": [
2026-06-16T09:36:12.5749193Z             {
2026-06-16T09:36:12.5749413Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-16T09:36:12.5749560Z               "line": 175
2026-06-16T09:36:12.5749685Z             },
2026-06-16T09:36:12.5749803Z             {
2026-06-16T09:36:12.5750023Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-16T09:36:12.5750160Z               "line": 195
2026-06-16T09:36:12.5750285Z             }
2026-06-16T09:36:12.5750414Z           ]
2026-06-16T09:36:12.5750542Z         }
2026-06-16T09:36:12.5750672Z       }
2026-06-16T09:36:12.5750794Z     },
2026-06-16T09:36:12.5750922Z     {
2026-06-16T09:36:12.5751074Z       "id": "REQ-REACH-1",
2026-06-16T09:36:12.5751369Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-16T09:36:12.5751631Z       "requiredStages": [
2026-06-16T09:36:12.5751774Z         "impl",
2026-06-16T09:36:12.5751917Z         "unit",
2026-06-16T09:36:12.5752041Z         "int"
2026-06-16T09:36:12.5752174Z       ],
2026-06-16T09:36:12.5752309Z       "stages": {
2026-06-16T09:36:12.5752547Z         "doc": {
2026-06-16T09:36:12.5752698Z           "complete": false,
2026-06-16T09:36:12.5752842Z           "evidence": []
2026-06-16T09:36:12.5752971Z         },
2026-06-16T09:36:12.5753099Z         "impl": {
2026-06-16T09:36:12.5753258Z           "complete": true,
2026-06-16T09:36:12.5753389Z           "evidence": [
2026-06-16T09:36:12.5753518Z             {
2026-06-16T09:36:12.5753739Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.5753888Z               "line": 430
2026-06-16T09:36:12.5754011Z             },
2026-06-16T09:36:12.5754135Z             {
2026-06-16T09:36:12.5754354Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-16T09:36:12.5754484Z               "line": 76
2026-06-16T09:36:12.5754618Z             },
2026-06-16T09:36:12.5754750Z             {
2026-06-16T09:36:12.5754960Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-16T09:36:12.5755113Z               "line": 222
2026-06-16T09:36:12.5755246Z             },
2026-06-16T09:36:12.5755375Z             {
2026-06-16T09:36:12.5755575Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-16T09:36:12.5755719Z               "line": 422
2026-06-16T09:36:12.5755847Z             },
2026-06-16T09:36:12.5755976Z             {
2026-06-16T09:36:12.5756181Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-16T09:36:12.5756327Z               "line": 529
2026-06-16T09:36:12.5756457Z             },
2026-06-16T09:36:12.5756571Z             {
2026-06-16T09:36:12.5756781Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-16T09:36:12.5756923Z               "line": 39
2026-06-16T09:36:12.5757049Z             },
2026-06-16T09:36:12.5757177Z             {
2026-06-16T09:36:12.5757383Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.5757529Z               "line": 243
2026-06-16T09:36:12.5757654Z             },
2026-06-16T09:36:12.5757791Z             {
2026-06-16T09:36:12.5757988Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-16T09:36:12.5758139Z               "line": 88
2026-06-16T09:36:12.5758268Z             },
2026-06-16T09:36:12.5758397Z             {
2026-06-16T09:36:12.5758601Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-16T09:36:12.5758738Z               "line": 98
2026-06-16T09:36:12.5758875Z             },
2026-06-16T09:36:12.5759077Z             {
2026-06-16T09:36:12.5759286Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5759443Z               "line": 229
2026-06-16T09:36:12.5759557Z             }
2026-06-16T09:36:12.5759691Z           ]
2026-06-16T09:36:12.5759819Z         },
2026-06-16T09:36:12.5759944Z         "int": {
2026-06-16T09:36:12.5760101Z           "complete": true,
2026-06-16T09:36:12.5760250Z           "evidence": [
2026-06-16T09:36:12.5760373Z             {
2026-06-16T09:36:12.5760602Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.5760750Z               "line": 415
2026-06-16T09:36:12.5760879Z             },
2026-06-16T09:36:12.5761006Z             {
2026-06-16T09:36:12.5761241Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.5761387Z               "line": 516
2026-06-16T09:36:12.5761526Z             },
2026-06-16T09:36:12.5761643Z             {
2026-06-16T09:36:12.5761876Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5762015Z               "line": 996
2026-06-16T09:36:12.5762138Z             },
2026-06-16T09:36:12.5762287Z             {
2026-06-16T09:36:12.5762511Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5762653Z               "line": 1381
2026-06-16T09:36:12.5762782Z             }
2026-06-16T09:36:12.5762915Z           ]
2026-06-16T09:36:12.5763160Z         },
2026-06-16T09:36:12.5763287Z         "unit": {
2026-06-16T09:36:12.5763436Z           "complete": true,
2026-06-16T09:36:12.5763573Z           "evidence": [
2026-06-16T09:36:12.5763698Z             {
2026-06-16T09:36:12.5764001Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-16T09:36:12.5764149Z               "line": 639
2026-06-16T09:36:12.5764276Z             },
2026-06-16T09:36:12.5764405Z             {
2026-06-16T09:36:12.5764619Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-16T09:36:12.5764749Z               "line": 660
2026-06-16T09:36:12.5764882Z             },
2026-06-16T09:36:12.5765005Z             {
2026-06-16T09:36:12.5765234Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-16T09:36:12.5765368Z               "line": 646
2026-06-16T09:36:12.5765496Z             },
2026-06-16T09:36:12.5765620Z             {
2026-06-16T09:36:12.5765840Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-16T09:36:12.5765984Z               "line": 93
2026-06-16T09:36:12.5766116Z             },
2026-06-16T09:36:12.5766255Z             {
2026-06-16T09:36:12.5766468Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-16T09:36:12.5766609Z               "line": 224
2026-06-16T09:36:12.5766741Z             },
2026-06-16T09:36:12.5766864Z             {
2026-06-16T09:36:12.5767079Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-16T09:36:12.5767216Z               "line": 96
2026-06-16T09:36:12.5767351Z             },
2026-06-16T09:36:12.5767479Z             {
2026-06-16T09:36:12.5767684Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-16T09:36:12.5767836Z               "line": 146
2026-06-16T09:36:12.5767952Z             },
2026-06-16T09:36:12.5768075Z             {
2026-06-16T09:36:12.5768267Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.5768404Z               "line": 572
2026-06-16T09:36:12.5768543Z             },
2026-06-16T09:36:12.5768680Z             {
2026-06-16T09:36:12.5768897Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-16T09:36:12.5769128Z               "line": 118
2026-06-16T09:36:12.5769256Z             },
2026-06-16T09:36:12.5769383Z             {
2026-06-16T09:36:12.5769589Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-16T09:36:12.5769731Z               "line": 148
2026-06-16T09:36:12.5769855Z             },
2026-06-16T09:36:12.5769979Z             {
2026-06-16T09:36:12.5770190Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5770336Z               "line": 924
2026-06-16T09:36:12.5770461Z             }
2026-06-16T09:36:12.5770590Z           ]
2026-06-16T09:36:12.5770718Z         }
2026-06-16T09:36:12.5770833Z       }
2026-06-16T09:36:12.5770957Z     },
2026-06-16T09:36:12.5771081Z     {
2026-06-16T09:36:12.5771228Z       "id": "REQ-REACH-2",
2026-06-16T09:36:12.5771534Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-16T09:36:12.5771686Z       "requiredStages": [],
2026-06-16T09:36:12.5771830Z       "stages": {
2026-06-16T09:36:12.5771957Z         "doc": {
2026-06-16T09:36:12.5772119Z           "complete": false,
2026-06-16T09:36:12.5772265Z           "evidence": []
2026-06-16T09:36:12.5772408Z         },
2026-06-16T09:36:12.5772579Z         "impl": {
2026-06-16T09:36:12.5772742Z           "complete": false,
2026-06-16T09:36:12.5772932Z           "evidence": []
2026-06-16T09:36:12.5773057Z         },
2026-06-16T09:36:12.5773199Z         "int": {
2026-06-16T09:36:12.5773362Z           "complete": false,
2026-06-16T09:36:12.5773514Z           "evidence": []
2026-06-16T09:36:12.5773657Z         },
2026-06-16T09:36:12.5773800Z         "unit": {
2026-06-16T09:36:12.5773953Z           "complete": false,
2026-06-16T09:36:12.5774101Z           "evidence": []
2026-06-16T09:36:12.5774238Z         }
2026-06-16T09:36:12.5774368Z       }
2026-06-16T09:36:12.5774509Z     },
2026-06-16T09:36:12.5774638Z     {
2026-06-16T09:36:12.5774784Z       "id": "REQ-REL-1",
2026-06-16T09:36:12.5775803Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-16T09:36:12.5775972Z       "requiredStages": [
2026-06-16T09:36:12.5776109Z         "doc",
2026-06-16T09:36:12.5776338Z         "impl"
2026-06-16T09:36:12.5776476Z       ],
2026-06-16T09:36:12.5776611Z       "stages": {
2026-06-16T09:36:12.5776753Z         "doc": {
2026-06-16T09:36:12.5776907Z           "complete": true,
2026-06-16T09:36:12.5777053Z           "evidence": [
2026-06-16T09:36:12.5777193Z             {
2026-06-16T09:36:12.5777691Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-16T09:36:12.5777834Z               "line": 3
2026-06-16T09:36:12.5786130Z             }
2026-06-16T09:36:12.5786298Z           ]
2026-06-16T09:36:12.5786431Z         },
2026-06-16T09:36:12.5786584Z         "impl": {
2026-06-16T09:36:12.5786736Z           "complete": true,
2026-06-16T09:36:12.5786879Z           "evidence": [
2026-06-16T09:36:12.5787008Z             {
2026-06-16T09:36:12.5787260Z               "path": ".github/workflows/docs-publish.yml",
2026-06-16T09:36:12.5787409Z               "line": 11
2026-06-16T09:36:12.5787542Z             },
2026-06-16T09:36:12.5787680Z             {
2026-06-16T09:36:12.5787876Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.5788022Z               "line": 265
2026-06-16T09:36:12.5788152Z             }
2026-06-16T09:36:12.5788274Z           ]
2026-06-16T09:36:12.5788399Z         },
2026-06-16T09:36:12.5788529Z         "int": {
2026-06-16T09:36:12.5788685Z           "complete": false,
2026-06-16T09:36:12.5788828Z           "evidence": []
2026-06-16T09:36:12.5789053Z         },
2026-06-16T09:36:12.5789191Z         "unit": {
2026-06-16T09:36:12.5789339Z           "complete": false,
2026-06-16T09:36:12.5789486Z           "evidence": []
2026-06-16T09:36:12.5789625Z         }
2026-06-16T09:36:12.5789754Z       }
2026-06-16T09:36:12.5789877Z     },
2026-06-16T09:36:12.5790012Z     {
2026-06-16T09:36:12.5790158Z       "id": "REQ-REL-2",
2026-06-16T09:36:12.5791329Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-16T09:36:12.5791499Z       "requiredStages": [
2026-06-16T09:36:12.5791630Z         "impl",
2026-06-16T09:36:12.5791771Z         "int"
2026-06-16T09:36:12.5791906Z       ],
2026-06-16T09:36:12.5792043Z       "stages": {
2026-06-16T09:36:12.5792172Z         "doc": {
2026-06-16T09:36:12.5792325Z           "complete": true,
2026-06-16T09:36:12.5792477Z           "evidence": [
2026-06-16T09:36:12.5792603Z             {
2026-06-16T09:36:12.5792802Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-16T09:36:12.5792936Z               "line": 6
2026-06-16T09:36:12.5793077Z             }
2026-06-16T09:36:12.5793201Z           ]
2026-06-16T09:36:12.5793346Z         },
2026-06-16T09:36:12.5793494Z         "impl": {
2026-06-16T09:36:12.5793661Z           "complete": true,
2026-06-16T09:36:12.5793814Z           "evidence": [
2026-06-16T09:36:12.5793938Z             {
2026-06-16T09:36:12.5794173Z               "path": ".github/workflows/release.yml",
2026-06-16T09:36:12.5794338Z               "line": 16
2026-06-16T09:36:12.5794487Z             },
2026-06-16T09:36:12.5794629Z             {
2026-06-16T09:36:12.5794812Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.5794948Z               "line": 352
2026-06-16T09:36:12.5795078Z             },
2026-06-16T09:36:12.5795258Z             {
2026-06-16T09:36:12.5795441Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.5795602Z               "line": 426
2026-06-16T09:36:12.5795739Z             },
2026-06-16T09:36:12.5795867Z             {
2026-06-16T09:36:12.5796066Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.5796205Z               "line": 588
2026-06-16T09:36:12.5796342Z             },
2026-06-16T09:36:12.5796657Z             {
2026-06-16T09:36:12.5796848Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.5796996Z               "line": 720
2026-06-16T09:36:12.5797115Z             }
2026-06-16T09:36:12.5797243Z           ]
2026-06-16T09:36:12.5797506Z         },
2026-06-16T09:36:12.5797640Z         "int": {
2026-06-16T09:36:12.5797792Z           "complete": true,
2026-06-16T09:36:12.5797940Z           "evidence": [
2026-06-16T09:36:12.5798074Z             {
2026-06-16T09:36:12.5798323Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-16T09:36:12.5798468Z               "line": 13
2026-06-16T09:36:12.5798596Z             }
2026-06-16T09:36:12.5798726Z           ]
2026-06-16T09:36:12.5798854Z         },
2026-06-16T09:36:12.5799059Z         "unit": {
2026-06-16T09:36:12.5799216Z           "complete": false,
2026-06-16T09:36:12.5799365Z           "evidence": []
2026-06-16T09:36:12.5799497Z         }
2026-06-16T09:36:12.5799623Z       }
2026-06-16T09:36:12.5799761Z     },
2026-06-16T09:36:12.5799884Z     {
2026-06-16T09:36:12.5800041Z       "id": "REQ-REL-3",
2026-06-16T09:36:12.5801144Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-16T09:36:12.5801303Z       "requiredStages": [
2026-06-16T09:36:12.5801435Z         "impl",
2026-06-16T09:36:12.5801560Z         "unit"
2026-06-16T09:36:12.5801693Z       ],
2026-06-16T09:36:12.5801827Z       "stages": {
2026-06-16T09:36:12.5801965Z         "doc": {
2026-06-16T09:36:12.5802122Z           "complete": false,
2026-06-16T09:36:12.5802255Z           "evidence": []
2026-06-16T09:36:12.5802388Z         },
2026-06-16T09:36:12.5802519Z         "impl": {
2026-06-16T09:36:12.5802675Z           "complete": true,
2026-06-16T09:36:12.5802805Z           "evidence": [
2026-06-16T09:36:12.5802937Z             {
2026-06-16T09:36:12.5803158Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.5803309Z               "line": 237
2026-06-16T09:36:12.5803439Z             },
2026-06-16T09:36:12.5803566Z             {
2026-06-16T09:36:12.5803785Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.5803930Z               "line": 289
2026-06-16T09:36:12.5804059Z             },
2026-06-16T09:36:12.5804194Z             {
2026-06-16T09:36:12.5804374Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.5804508Z               "line": 329
2026-06-16T09:36:12.5804645Z             },
2026-06-16T09:36:12.5804770Z             {
2026-06-16T09:36:12.5804960Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.5805095Z               "line": 353
2026-06-16T09:36:12.5805218Z             },
2026-06-16T09:36:12.5805342Z             {
2026-06-16T09:36:12.5805523Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.5805662Z               "line": 394
2026-06-16T09:36:12.5805799Z             }
2026-06-16T09:36:12.5805928Z           ]
2026-06-16T09:36:12.5806058Z         },
2026-06-16T09:36:12.5806185Z         "int": {
2026-06-16T09:36:12.5806333Z           "complete": false,
2026-06-16T09:36:12.5806478Z           "evidence": []
2026-06-16T09:36:12.5806592Z         },
2026-06-16T09:36:12.5806732Z         "unit": {
2026-06-16T09:36:12.5806887Z           "complete": true,
2026-06-16T09:36:12.5807022Z           "evidence": [
2026-06-16T09:36:12.5807155Z             {
2026-06-16T09:36:12.5807380Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.5807526Z               "line": 992
2026-06-16T09:36:12.5807656Z             },
2026-06-16T09:36:12.5807775Z             {
2026-06-16T09:36:12.5807967Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.5808090Z               "line": 1051
2026-06-16T09:36:12.5808205Z             }
2026-06-16T09:36:12.5808310Z           ]
2026-06-16T09:36:12.5808419Z         }
2026-06-16T09:36:12.5808525Z       }
2026-06-16T09:36:12.5808634Z     },
2026-06-16T09:36:12.5808854Z     {
2026-06-16T09:36:12.5809066Z       "id": "REQ-RUN-PICKER",
2026-06-16T09:36:12.5820275Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-16T09:36:12.5820594Z       "requiredStages": [
2026-06-16T09:36:12.5820704Z         "doc",
2026-06-16T09:36:12.5820814Z         "impl",
2026-06-16T09:36:12.5820923Z         "unit"
2026-06-16T09:36:12.5821029Z       ],
2026-06-16T09:36:12.5821129Z       "stages": {
2026-06-16T09:36:12.5821243Z         "doc": {
2026-06-16T09:36:12.5821401Z           "complete": true,
2026-06-16T09:36:12.5821528Z           "evidence": [
2026-06-16T09:36:12.5821644Z             {
2026-06-16T09:36:12.5821778Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.5821900Z               "line": 327
2026-06-16T09:36:12.5822033Z             }
2026-06-16T09:36:12.5822141Z           ]
2026-06-16T09:36:12.5822245Z         },
2026-06-16T09:36:12.5822365Z         "impl": {
2026-06-16T09:36:12.5822494Z           "complete": true,
2026-06-16T09:36:12.5822612Z           "evidence": [
2026-06-16T09:36:12.5822719Z             {
2026-06-16T09:36:12.5822879Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5823000Z               "line": 911
2026-06-16T09:36:12.5823104Z             },
2026-06-16T09:36:12.5823218Z             {
2026-06-16T09:36:12.5823372Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5823485Z               "line": 921
2026-06-16T09:36:12.5823601Z             },
2026-06-16T09:36:12.5823700Z             {
2026-06-16T09:36:12.5823901Z               "path": "crates/spt/src/picker/data.rs",
2026-06-16T09:36:12.5824024Z               "line": 9
2026-06-16T09:36:12.5824129Z             },
2026-06-16T09:36:12.5824245Z             {
2026-06-16T09:36:12.5824425Z               "path": "crates/spt/src/picker/data.rs",
2026-06-16T09:36:12.5824560Z               "line": 67
2026-06-16T09:36:12.5824664Z             },
2026-06-16T09:36:12.5824777Z             {
2026-06-16T09:36:12.5824962Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-16T09:36:12.5825079Z               "line": 16
2026-06-16T09:36:12.5825189Z             },
2026-06-16T09:36:12.5825294Z             {
2026-06-16T09:36:12.5825479Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-16T09:36:12.5825600Z               "line": 249
2026-06-16T09:36:12.5825704Z             },
2026-06-16T09:36:12.5825809Z             {
2026-06-16T09:36:12.5826009Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5826143Z               "line": 11
2026-06-16T09:36:12.5826366Z             },
2026-06-16T09:36:12.5826468Z             {
2026-06-16T09:36:12.5826653Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5826778Z               "line": 85
2026-06-16T09:36:12.5826953Z             },
2026-06-16T09:36:12.5827054Z             {
2026-06-16T09:36:12.5827248Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5827371Z               "line": 452
2026-06-16T09:36:12.5827486Z             },
2026-06-16T09:36:12.5827584Z             {
2026-06-16T09:36:12.5827770Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5827895Z               "line": 533
2026-06-16T09:36:12.5828008Z             },
2026-06-16T09:36:12.5828115Z             {
2026-06-16T09:36:12.5828299Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5828420Z               "line": 586
2026-06-16T09:36:12.5828519Z             },
2026-06-16T09:36:12.5828628Z             {
2026-06-16T09:36:12.5828810Z               "path": "crates/spt/src/picker/view.rs",
2026-06-16T09:36:12.5828938Z               "line": 8
2026-06-16T09:36:12.5829124Z             }
2026-06-16T09:36:12.5829215Z           ]
2026-06-16T09:36:12.5829330Z         },
2026-06-16T09:36:12.5829444Z         "int": {
2026-06-16T09:36:12.5829577Z           "complete": false,
2026-06-16T09:36:12.5829703Z           "evidence": []
2026-06-16T09:36:12.5829805Z         },
2026-06-16T09:36:12.5829926Z         "unit": {
2026-06-16T09:36:12.5830051Z           "complete": true,
2026-06-16T09:36:12.5830172Z           "evidence": [
2026-06-16T09:36:12.5830277Z             {
2026-06-16T09:36:12.5830445Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5830567Z               "line": 6608
2026-06-16T09:36:12.5830674Z             },
2026-06-16T09:36:12.5830783Z             {
2026-06-16T09:36:12.5830945Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5831069Z               "line": 6619
2026-06-16T09:36:12.5831173Z             },
2026-06-16T09:36:12.5831279Z             {
2026-06-16T09:36:12.5831464Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5831594Z               "line": 737
2026-06-16T09:36:12.5831698Z             },
2026-06-16T09:36:12.5831808Z             {
2026-06-16T09:36:12.5831994Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5832108Z               "line": 744
2026-06-16T09:36:12.5832218Z             },
2026-06-16T09:36:12.5832328Z             {
2026-06-16T09:36:12.5832517Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5832641Z               "line": 761
2026-06-16T09:36:12.5832744Z             },
2026-06-16T09:36:12.5832848Z             {
2026-06-16T09:36:12.5833035Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5833159Z               "line": 781
2026-06-16T09:36:12.5833264Z             },
2026-06-16T09:36:12.5833369Z             {
2026-06-16T09:36:12.5833560Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5833683Z               "line": 795
2026-06-16T09:36:12.5833793Z             },
2026-06-16T09:36:12.5833898Z             {
2026-06-16T09:36:12.5834088Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5834218Z               "line": 804
2026-06-16T09:36:12.5834332Z             },
2026-06-16T09:36:12.5834437Z             {
2026-06-16T09:36:12.5834622Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5834742Z               "line": 815
2026-06-16T09:36:12.5834852Z             },
2026-06-16T09:36:12.5834956Z             {
2026-06-16T09:36:12.5835134Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5835247Z               "line": 837
2026-06-16T09:36:12.5835355Z             },
2026-06-16T09:36:12.5835456Z             {
2026-06-16T09:36:12.5835644Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5835754Z               "line": 856
2026-06-16T09:36:12.5835859Z             },
2026-06-16T09:36:12.5836088Z             {
2026-06-16T09:36:12.5836255Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5836379Z               "line": 893
2026-06-16T09:36:12.5836484Z             },
2026-06-16T09:36:12.5836598Z             {
2026-06-16T09:36:12.5836965Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5837081Z               "line": 922
2026-06-16T09:36:12.5837188Z             },
2026-06-16T09:36:12.5837294Z             {
2026-06-16T09:36:12.5837485Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5837599Z               "line": 935
2026-06-16T09:36:12.5837715Z             },
2026-06-16T09:36:12.5837814Z             {
2026-06-16T09:36:12.5837989Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5838112Z               "line": 979
2026-06-16T09:36:12.5838220Z             },
2026-06-16T09:36:12.5838335Z             {
2026-06-16T09:36:12.5838506Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5838631Z               "line": 1006
2026-06-16T09:36:12.5838736Z             },
2026-06-16T09:36:12.5838854Z             {
2026-06-16T09:36:12.5839113Z               "path": "crates/spt/src/picker/model.rs",
2026-06-16T09:36:12.5839236Z               "line": 1022
2026-06-16T09:36:12.5839351Z             },
2026-06-16T09:36:12.5839456Z             {
2026-06-16T09:36:12.5839638Z               "path": "crates/spt/src/picker/view.rs",
2026-06-16T09:36:12.5839747Z               "line": 419
2026-06-16T09:36:12.5839852Z             },
2026-06-16T09:36:12.5839957Z             {
2026-06-16T09:36:12.5840127Z               "path": "crates/spt/src/picker/view.rs",
2026-06-16T09:36:12.5840253Z               "line": 431
2026-06-16T09:36:12.5840356Z             },
2026-06-16T09:36:12.5840457Z             {
2026-06-16T09:36:12.5840630Z               "path": "crates/spt/src/picker/view.rs",
2026-06-16T09:36:12.5840752Z               "line": 449
2026-06-16T09:36:12.5840857Z             },
2026-06-16T09:36:12.5840962Z             {
2026-06-16T09:36:12.5841147Z               "path": "crates/spt/src/picker/view.rs",
2026-06-16T09:36:12.5841257Z               "line": 471
2026-06-16T09:36:12.5841357Z             },
2026-06-16T09:36:12.5841461Z             {
2026-06-16T09:36:12.5841629Z               "path": "crates/spt/src/picker/view.rs",
2026-06-16T09:36:12.5841748Z               "line": 481
2026-06-16T09:36:12.5841854Z             },
2026-06-16T09:36:12.5841958Z             {
2026-06-16T09:36:12.5842120Z               "path": "crates/spt/src/picker/view.rs",
2026-06-16T09:36:12.5842249Z               "line": 504
2026-06-16T09:36:12.5842353Z             }
2026-06-16T09:36:12.5842455Z           ]
2026-06-16T09:36:12.5842554Z         }
2026-06-16T09:36:12.5842658Z       }
2026-06-16T09:36:12.5842769Z     },
2026-06-16T09:36:12.5842865Z     {
2026-06-16T09:36:12.5843010Z       "id": "REQ-RUN-SHORTCUT",
2026-06-16T09:36:12.5853798Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-16T09:36:12.5854222Z       "requiredStages": [
2026-06-16T09:36:12.5854336Z         "doc",
2026-06-16T09:36:12.5854451Z         "impl",
2026-06-16T09:36:12.5854560Z         "unit"
2026-06-16T09:36:12.5854680Z       ],
2026-06-16T09:36:12.5854794Z       "stages": {
2026-06-16T09:36:12.5854889Z         "doc": {
2026-06-16T09:36:12.5855018Z           "complete": true,
2026-06-16T09:36:12.5855151Z           "evidence": [
2026-06-16T09:36:12.5855261Z             {
2026-06-16T09:36:12.5855419Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.5855547Z               "line": 350
2026-06-16T09:36:12.5855653Z             }
2026-06-16T09:36:12.5855757Z           ]
2026-06-16T09:36:12.5855862Z         },
2026-06-16T09:36:12.5856001Z         "impl": {
2026-06-16T09:36:12.5856134Z           "complete": true,
2026-06-16T09:36:12.5856255Z           "evidence": [
2026-06-16T09:36:12.5856358Z             {
2026-06-16T09:36:12.5856567Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-16T09:36:12.5856689Z               "line": 39
2026-06-16T09:36:12.5856792Z             },
2026-06-16T09:36:12.5856899Z             {
2026-06-16T09:36:12.5857112Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-16T09:36:12.5857218Z               "line": 79
2026-06-16T09:36:12.5857323Z             },
2026-06-16T09:36:12.5857431Z             {
2026-06-16T09:36:12.5857623Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-16T09:36:12.5857742Z               "line": 162
2026-06-16T09:36:12.5857858Z             }
2026-06-16T09:36:12.5857962Z           ]
2026-06-16T09:36:12.5858066Z         },
2026-06-16T09:36:12.5858182Z         "int": {
2026-06-16T09:36:12.5858309Z           "complete": false,
2026-06-16T09:36:12.5858434Z           "evidence": []
2026-06-16T09:36:12.5858539Z         },
2026-06-16T09:36:12.5858652Z         "unit": {
2026-06-16T09:36:12.5858773Z           "complete": true,
2026-06-16T09:36:12.5858892Z           "evidence": [
2026-06-16T09:36:12.5859066Z             {
2026-06-16T09:36:12.5859274Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-16T09:36:12.5859398Z               "line": 206
2026-06-16T09:36:12.5859518Z             },
2026-06-16T09:36:12.5859627Z             {
2026-06-16T09:36:12.5859833Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-16T09:36:12.5859946Z               "line": 222
2026-06-16T09:36:12.5860046Z             },
2026-06-16T09:36:12.5860152Z             {
2026-06-16T09:36:12.5860356Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-16T09:36:12.5860476Z               "line": 238
2026-06-16T09:36:12.5860576Z             },
2026-06-16T09:36:12.5860681Z             {
2026-06-16T09:36:12.5860872Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-16T09:36:12.5861000Z               "line": 251
2026-06-16T09:36:12.5861101Z             },
2026-06-16T09:36:12.5861205Z             {
2026-06-16T09:36:12.5861407Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-16T09:36:12.5861519Z               "line": 258
2026-06-16T09:36:12.5861621Z             }
2026-06-16T09:36:12.5861726Z           ]
2026-06-16T09:36:12.5861839Z         }
2026-06-16T09:36:12.5861943Z       }
2026-06-16T09:36:12.5862049Z     },
2026-06-16T09:36:12.5862149Z     {
2026-06-16T09:36:12.5862306Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-16T09:36:12.5862655Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-16T09:36:12.5862779Z       "requiredStages": [
2026-06-16T09:36:12.5863012Z         "impl",
2026-06-16T09:36:12.5863117Z         "unit"
2026-06-16T09:36:12.5863226Z       ],
2026-06-16T09:36:12.5863332Z       "stages": {
2026-06-16T09:36:12.5863436Z         "doc": {
2026-06-16T09:36:12.5863661Z           "complete": false,
2026-06-16T09:36:12.5863774Z           "evidence": []
2026-06-16T09:36:12.5863889Z         },
2026-06-16T09:36:12.5863985Z         "impl": {
2026-06-16T09:36:12.5864117Z           "complete": true,
2026-06-16T09:36:12.5864240Z           "evidence": [
2026-06-16T09:36:12.5864344Z             {
2026-06-16T09:36:12.5864553Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5864659Z               "line": 18
2026-06-16T09:36:12.5864767Z             },
2026-06-16T09:36:12.5864868Z             {
2026-06-16T09:36:12.5865053Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5865173Z               "line": 35
2026-06-16T09:36:12.5865278Z             },
2026-06-16T09:36:12.5865382Z             {
2026-06-16T09:36:12.5865574Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5865697Z               "line": 72
2026-06-16T09:36:12.5865802Z             }
2026-06-16T09:36:12.5865903Z           ]
2026-06-16T09:36:12.5866012Z         },
2026-06-16T09:36:12.5866127Z         "int": {
2026-06-16T09:36:12.5866260Z           "complete": false,
2026-06-16T09:36:12.5866384Z           "evidence": []
2026-06-16T09:36:12.5866495Z         },
2026-06-16T09:36:12.5866612Z         "unit": {
2026-06-16T09:36:12.5866737Z           "complete": true,
2026-06-16T09:36:12.5866848Z           "evidence": [
2026-06-16T09:36:12.5866960Z             {
2026-06-16T09:36:12.5867151Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5867272Z               "line": 239
2026-06-16T09:36:12.5867381Z             },
2026-06-16T09:36:12.5867478Z             {
2026-06-16T09:36:12.5867658Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5867769Z               "line": 256
2026-06-16T09:36:12.5867874Z             },
2026-06-16T09:36:12.5867978Z             {
2026-06-16T09:36:12.5868174Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5868297Z               "line": 265
2026-06-16T09:36:12.5868408Z             }
2026-06-16T09:36:12.5868502Z           ]
2026-06-16T09:36:12.5868617Z         }
2026-06-16T09:36:12.5868718Z       }
2026-06-16T09:36:12.5868817Z     },
2026-06-16T09:36:12.5868922Z     {
2026-06-16T09:36:12.5869151Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-16T09:36:12.5869423Z       "title": "Hostable endpoint-types capability declaration",
2026-06-16T09:36:12.5869560Z       "requiredStages": [
2026-06-16T09:36:12.5869669Z         "impl",
2026-06-16T09:36:12.5869769Z         "unit"
2026-06-16T09:36:12.5869877Z       ],
2026-06-16T09:36:12.5869982Z       "stages": {
2026-06-16T09:36:12.5870088Z         "doc": {
2026-06-16T09:36:12.5870220Z           "complete": false,
2026-06-16T09:36:12.5870345Z           "evidence": []
2026-06-16T09:36:12.5870450Z         },
2026-06-16T09:36:12.5870558Z         "impl": {
2026-06-16T09:36:12.5870688Z           "complete": true,
2026-06-16T09:36:12.5870807Z           "evidence": [
2026-06-16T09:36:12.5870912Z             {
2026-06-16T09:36:12.5871117Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5871241Z               "line": 594
2026-06-16T09:36:12.5871351Z             }
2026-06-16T09:36:12.5871451Z           ]
2026-06-16T09:36:12.5871556Z         },
2026-06-16T09:36:12.5871661Z         "int": {
2026-06-16T09:36:12.5871790Z           "complete": false,
2026-06-16T09:36:12.5871910Z           "evidence": []
2026-06-16T09:36:12.5872028Z         },
2026-06-16T09:36:12.5872137Z         "unit": {
2026-06-16T09:36:12.5872262Z           "complete": true,
2026-06-16T09:36:12.5872375Z           "evidence": [
2026-06-16T09:36:12.5872479Z             {
2026-06-16T09:36:12.5872672Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5872789Z               "line": 963
2026-06-16T09:36:12.5873010Z             }
2026-06-16T09:36:12.5873104Z           ]
2026-06-16T09:36:12.5873210Z         }
2026-06-16T09:36:12.5873319Z       }
2026-06-16T09:36:12.5873423Z     },
2026-06-16T09:36:12.5873525Z     {
2026-06-16T09:36:12.5873757Z       "id": "REQ-SEAM-HISTORY",
2026-06-16T09:36:12.5874110Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-16T09:36:12.5874235Z       "requiredStages": [
2026-06-16T09:36:12.5874344Z         "impl",
2026-06-16T09:36:12.5874449Z         "unit",
2026-06-16T09:36:12.5874555Z         "int"
2026-06-16T09:36:12.5874658Z       ],
2026-06-16T09:36:12.5874772Z       "stages": {
2026-06-16T09:36:12.5874882Z         "doc": {
2026-06-16T09:36:12.5875003Z           "complete": false,
2026-06-16T09:36:12.5875127Z           "evidence": []
2026-06-16T09:36:12.5875229Z         },
2026-06-16T09:36:12.5875332Z         "impl": {
2026-06-16T09:36:12.5875466Z           "complete": true,
2026-06-16T09:36:12.5875586Z           "evidence": [
2026-06-16T09:36:12.5875690Z             {
2026-06-16T09:36:12.5875871Z               "path": "crates/spt-live/src/echo.rs",
2026-06-16T09:36:12.5876000Z               "line": 24
2026-06-16T09:36:12.5876111Z             },
2026-06-16T09:36:12.5876220Z             {
2026-06-16T09:36:12.5876416Z               "path": "crates/spt-live/src/history.rs",
2026-06-16T09:36:12.5876534Z               "line": 22
2026-06-16T09:36:12.5876658Z             }
2026-06-16T09:36:12.5876769Z           ]
2026-06-16T09:36:12.5876877Z         },
2026-06-16T09:36:12.5876992Z         "int": {
2026-06-16T09:36:12.5877117Z           "complete": true,
2026-06-16T09:36:12.5877244Z           "evidence": [
2026-06-16T09:36:12.5877341Z             {
2026-06-16T09:36:12.5877549Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.5877668Z               "line": 260
2026-06-16T09:36:12.5877767Z             }
2026-06-16T09:36:12.5877871Z           ]
2026-06-16T09:36:12.5877980Z         },
2026-06-16T09:36:12.5878095Z         "unit": {
2026-06-16T09:36:12.5878223Z           "complete": true,
2026-06-16T09:36:12.5878344Z           "evidence": [
2026-06-16T09:36:12.5878448Z             {
2026-06-16T09:36:12.5878615Z               "path": "crates/spt-live/src/echo.rs",
2026-06-16T09:36:12.5878734Z               "line": 171
2026-06-16T09:36:12.5878833Z             },
2026-06-16T09:36:12.5879016Z             {
2026-06-16T09:36:12.5879177Z               "path": "crates/spt-live/src/echo.rs",
2026-06-16T09:36:12.5879302Z               "line": 200
2026-06-16T09:36:12.5879406Z             },
2026-06-16T09:36:12.5879516Z             {
2026-06-16T09:36:12.5879697Z               "path": "crates/spt-live/src/echo.rs",
2026-06-16T09:36:12.5879811Z               "line": 220
2026-06-16T09:36:12.5879917Z             },
2026-06-16T09:36:12.5880021Z             {
2026-06-16T09:36:12.5880215Z               "path": "crates/spt-live/src/history.rs",
2026-06-16T09:36:12.5880338Z               "line": 199
2026-06-16T09:36:12.5880447Z             },
2026-06-16T09:36:12.5880552Z             {
2026-06-16T09:36:12.5880738Z               "path": "crates/spt-live/src/history.rs",
2026-06-16T09:36:12.5880866Z               "line": 219
2026-06-16T09:36:12.5880972Z             },
2026-06-16T09:36:12.5881076Z             {
2026-06-16T09:36:12.5881272Z               "path": "crates/spt-live/src/history.rs",
2026-06-16T09:36:12.5881386Z               "line": 244
2026-06-16T09:36:12.5881482Z             },
2026-06-16T09:36:12.5881587Z             {
2026-06-16T09:36:12.5881777Z               "path": "crates/spt-live/src/history.rs",
2026-06-16T09:36:12.5881897Z               "line": 276
2026-06-16T09:36:12.5882001Z             },
2026-06-16T09:36:12.5882106Z             {
2026-06-16T09:36:12.5882287Z               "path": "crates/spt-live/src/history.rs",
2026-06-16T09:36:12.5882416Z               "line": 297
2026-06-16T09:36:12.5882522Z             },
2026-06-16T09:36:12.5882626Z             {
2026-06-16T09:36:12.5882809Z               "path": "crates/spt-live/src/history.rs",
2026-06-16T09:36:12.5883049Z               "line": 324
2026-06-16T09:36:12.5883154Z             }
2026-06-16T09:36:12.5883255Z           ]
2026-06-16T09:36:12.5883363Z         }
2026-06-16T09:36:12.5883469Z       }
2026-06-16T09:36:12.5883678Z     },
2026-06-16T09:36:12.5883775Z     {
2026-06-16T09:36:12.5883908Z       "id": "REQ-SEAM-INJECT",
2026-06-16T09:36:12.5884222Z       "title": "inject-input methods configurable per activity-state",
2026-06-16T09:36:12.5884351Z       "requiredStages": [
2026-06-16T09:36:12.5884461Z         "impl",
2026-06-16T09:36:12.5884566Z         "unit"
2026-06-16T09:36:12.5884671Z       ],
2026-06-16T09:36:12.5884786Z       "stages": {
2026-06-16T09:36:12.5884899Z         "doc": {
2026-06-16T09:36:12.5885044Z           "complete": false,
2026-06-16T09:36:12.5885166Z           "evidence": []
2026-06-16T09:36:12.5885270Z         },
2026-06-16T09:36:12.5885384Z         "impl": {
2026-06-16T09:36:12.5885512Z           "complete": true,
2026-06-16T09:36:12.5885625Z           "evidence": [
2026-06-16T09:36:12.5885736Z             {
2026-06-16T09:36:12.5885930Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5886051Z               "line": 19
2026-06-16T09:36:12.5886165Z             },
2026-06-16T09:36:12.5886278Z             {
2026-06-16T09:36:12.5886456Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5886574Z               "line": 111
2026-06-16T09:36:12.5886675Z             }
2026-06-16T09:36:12.5886780Z           ]
2026-06-16T09:36:12.5886884Z         },
2026-06-16T09:36:12.5886990Z         "int": {
2026-06-16T09:36:12.5887114Z           "complete": false,
2026-06-16T09:36:12.5887267Z           "evidence": []
2026-06-16T09:36:12.5887394Z         },
2026-06-16T09:36:12.5887499Z         "unit": {
2026-06-16T09:36:12.5887630Z           "complete": true,
2026-06-16T09:36:12.5887747Z           "evidence": [
2026-06-16T09:36:12.5887848Z             {
2026-06-16T09:36:12.5888034Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5888161Z               "line": 345
2026-06-16T09:36:12.5888271Z             },
2026-06-16T09:36:12.5888379Z             {
2026-06-16T09:36:12.5888564Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5888689Z               "line": 365
2026-06-16T09:36:12.5888798Z             }
2026-06-16T09:36:12.5888899Z           ]
2026-06-16T09:36:12.5889074Z         }
2026-06-16T09:36:12.5889180Z       }
2026-06-16T09:36:12.5889284Z     },
2026-06-16T09:36:12.5889384Z     {
2026-06-16T09:36:12.5889528Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-16T09:36:12.5889766Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-16T09:36:12.5889900Z       "requiredStages": [
2026-06-16T09:36:12.5890009Z         "impl",
2026-06-16T09:36:12.5890114Z         "unit"
2026-06-16T09:36:12.5890220Z       ],
2026-06-16T09:36:12.5890343Z       "stages": {
2026-06-16T09:36:12.5890449Z         "doc": {
2026-06-16T09:36:12.5890581Z           "complete": false,
2026-06-16T09:36:12.5890704Z           "evidence": []
2026-06-16T09:36:12.5890819Z         },
2026-06-16T09:36:12.5890917Z         "impl": {
2026-06-16T09:36:12.5891044Z           "complete": true,
2026-06-16T09:36:12.5891165Z           "evidence": [
2026-06-16T09:36:12.5891274Z             {
2026-06-16T09:36:12.5891470Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.5891584Z               "line": 18
2026-06-16T09:36:12.5891688Z             },
2026-06-16T09:36:12.5891790Z             {
2026-06-16T09:36:12.5891970Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.5892095Z               "line": 330
2026-06-16T09:36:12.5892204Z             }
2026-06-16T09:36:12.5892313Z           ]
2026-06-16T09:36:12.5892415Z         },
2026-06-16T09:36:12.5892528Z         "int": {
2026-06-16T09:36:12.5892656Z           "complete": false,
2026-06-16T09:36:12.5892786Z           "evidence": []
2026-06-16T09:36:12.5892895Z         },
2026-06-16T09:36:12.5893006Z         "unit": {
2026-06-16T09:36:12.5893263Z           "complete": true,
2026-06-16T09:36:12.5893383Z           "evidence": [
2026-06-16T09:36:12.5893486Z             {
2026-06-16T09:36:12.5893676Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.5893890Z               "line": 604
2026-06-16T09:36:12.5893996Z             },
2026-06-16T09:36:12.5894101Z             {
2026-06-16T09:36:12.5894291Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.5894411Z               "line": 614
2026-06-16T09:36:12.5894515Z             }
2026-06-16T09:36:12.5894615Z           ]
2026-06-16T09:36:12.5894726Z         }
2026-06-16T09:36:12.5894830Z       }
2026-06-16T09:36:12.5894930Z     },
2026-06-16T09:36:12.5895036Z     {
2026-06-16T09:36:12.5895178Z       "id": "REQ-SEAM-PSYCHE",
2026-06-16T09:36:12.5895431Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-16T09:36:12.5895560Z       "requiredStages": [
2026-06-16T09:36:12.5895665Z         "impl",
2026-06-16T09:36:12.5895769Z         "unit",
2026-06-16T09:36:12.5895878Z         "int"
2026-06-16T09:36:12.5895983Z       ],
2026-06-16T09:36:12.5896095Z       "stages": {
2026-06-16T09:36:12.5896204Z         "doc": {
2026-06-16T09:36:12.5896339Z           "complete": false,
2026-06-16T09:36:12.5900446Z           "evidence": []
2026-06-16T09:36:12.5900583Z         },
2026-06-16T09:36:12.5900704Z         "impl": {
2026-06-16T09:36:12.5900845Z           "complete": true,
2026-06-16T09:36:12.5900970Z           "evidence": [
2026-06-16T09:36:12.5901086Z             {
2026-06-16T09:36:12.5901274Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-16T09:36:12.5901398Z               "line": 19
2026-06-16T09:36:12.5901501Z             },
2026-06-16T09:36:12.5901595Z             {
2026-06-16T09:36:12.5901783Z               "path": "crates/spt/src/api/live.rs",
2026-06-16T09:36:12.5901901Z               "line": 12
2026-06-16T09:36:12.5902006Z             },
2026-06-16T09:36:12.5902111Z             {
2026-06-16T09:36:12.5902321Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.5902445Z               "line": 233
2026-06-16T09:36:12.5902554Z             }
2026-06-16T09:36:12.5902660Z           ]
2026-06-16T09:36:12.5902754Z         },
2026-06-16T09:36:12.5902864Z         "int": {
2026-06-16T09:36:12.5902989Z           "complete": true,
2026-06-16T09:36:12.5903112Z           "evidence": [
2026-06-16T09:36:12.5903217Z             {
2026-06-16T09:36:12.5903421Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.5903541Z               "line": 259
2026-06-16T09:36:12.5903643Z             }
2026-06-16T09:36:12.5903755Z           ]
2026-06-16T09:36:12.5903856Z         },
2026-06-16T09:36:12.5903972Z         "unit": {
2026-06-16T09:36:12.5904098Z           "complete": true,
2026-06-16T09:36:12.5904222Z           "evidence": [
2026-06-16T09:36:12.5904323Z             {
2026-06-16T09:36:12.5904513Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-16T09:36:12.5904638Z               "line": 161
2026-06-16T09:36:12.5904751Z             },
2026-06-16T09:36:12.5904852Z             {
2026-06-16T09:36:12.5905033Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-16T09:36:12.5905157Z               "line": 168
2026-06-16T09:36:12.5905266Z             },
2026-06-16T09:36:12.5905371Z             {
2026-06-16T09:36:12.5905553Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-16T09:36:12.5905667Z               "line": 191
2026-06-16T09:36:12.5905771Z             },
2026-06-16T09:36:12.5905878Z             {
2026-06-16T09:36:12.5906048Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-16T09:36:12.5906174Z               "line": 106
2026-06-16T09:36:12.5906281Z             },
2026-06-16T09:36:12.5906381Z             {
2026-06-16T09:36:12.5906552Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-16T09:36:12.5906674Z               "line": 137
2026-06-16T09:36:12.5906784Z             },
2026-06-16T09:36:12.5906885Z             {
2026-06-16T09:36:12.5907237Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-16T09:36:12.5907360Z               "line": 161
2026-06-16T09:36:12.5907466Z             }
2026-06-16T09:36:12.5907561Z           ]
2026-06-16T09:36:12.5907670Z         }
2026-06-16T09:36:12.5907867Z       }
2026-06-16T09:36:12.5907971Z     },
2026-06-16T09:36:12.5908087Z     {
2026-06-16T09:36:12.5908214Z       "id": "REQ-SEAM-RESUME",
2026-06-16T09:36:12.5908582Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-16T09:36:12.5908702Z       "requiredStages": [
2026-06-16T09:36:12.5908820Z         "impl",
2026-06-16T09:36:12.5908935Z         "unit"
2026-06-16T09:36:12.5909145Z       ],
2026-06-16T09:36:12.5909253Z       "stages": {
2026-06-16T09:36:12.5909358Z         "doc": {
2026-06-16T09:36:12.5909490Z           "complete": false,
2026-06-16T09:36:12.5909613Z           "evidence": []
2026-06-16T09:36:12.5909723Z         },
2026-06-16T09:36:12.5909847Z         "impl": {
2026-06-16T09:36:12.5909975Z           "complete": true,
2026-06-16T09:36:12.5910099Z           "evidence": [
2026-06-16T09:36:12.5910204Z             {
2026-06-16T09:36:12.5910386Z               "path": "crates/spt-live/src/resume.rs",
2026-06-16T09:36:12.5910500Z               "line": 19
2026-06-16T09:36:12.5910609Z             }
2026-06-16T09:36:12.5910711Z           ]
2026-06-16T09:36:12.5910806Z         },
2026-06-16T09:36:12.5910919Z         "int": {
2026-06-16T09:36:12.5911044Z           "complete": false,
2026-06-16T09:36:12.5911172Z           "evidence": []
2026-06-16T09:36:12.5911269Z         },
2026-06-16T09:36:12.5911373Z         "unit": {
2026-06-16T09:36:12.5911506Z           "complete": true,
2026-06-16T09:36:12.5911622Z           "evidence": [
2026-06-16T09:36:12.5911721Z             {
2026-06-16T09:36:12.5911906Z               "path": "crates/spt-live/src/resume.rs",
2026-06-16T09:36:12.5912029Z               "line": 201
2026-06-16T09:36:12.5912132Z             },
2026-06-16T09:36:12.5912237Z             {
2026-06-16T09:36:12.5912423Z               "path": "crates/spt-live/src/resume.rs",
2026-06-16T09:36:12.5912547Z               "line": 223
2026-06-16T09:36:12.5912657Z             },
2026-06-16T09:36:12.5912756Z             {
2026-06-16T09:36:12.5912943Z               "path": "crates/spt-live/src/resume.rs",
2026-06-16T09:36:12.5913061Z               "line": 244
2026-06-16T09:36:12.5913172Z             }
2026-06-16T09:36:12.5913281Z           ]
2026-06-16T09:36:12.5913386Z         }
2026-06-16T09:36:12.5913496Z       }
2026-06-16T09:36:12.5913596Z     },
2026-06-16T09:36:12.5913696Z     {
2026-06-16T09:36:12.5913826Z       "id": "REQ-SEAM-SPAWN",
2026-06-16T09:36:12.5913977Z       "title": "spawn-session seam",
2026-06-16T09:36:12.5914101Z       "requiredStages": [
2026-06-16T09:36:12.5914217Z         "impl",
2026-06-16T09:36:12.5914320Z         "unit"
2026-06-16T09:36:12.5914421Z       ],
2026-06-16T09:36:12.5914541Z       "stages": {
2026-06-16T09:36:12.5914644Z         "doc": {
2026-06-16T09:36:12.5914773Z           "complete": false,
2026-06-16T09:36:12.5914903Z           "evidence": []
2026-06-16T09:36:12.5915006Z         },
2026-06-16T09:36:12.5915111Z         "impl": {
2026-06-16T09:36:12.5915236Z           "complete": true,
2026-06-16T09:36:12.5915363Z           "evidence": [
2026-06-16T09:36:12.5915470Z             {
2026-06-16T09:36:12.5915688Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.5915803Z               "line": 20
2026-06-16T09:36:12.5915903Z             }
2026-06-16T09:36:12.5916016Z           ]
2026-06-16T09:36:12.5916123Z         },
2026-06-16T09:36:12.5916237Z         "int": {
2026-06-16T09:36:12.5916361Z           "complete": false,
2026-06-16T09:36:12.5916485Z           "evidence": []
2026-06-16T09:36:12.5916599Z         },
2026-06-16T09:36:12.5916709Z         "unit": {
2026-06-16T09:36:12.5916837Z           "complete": true,
2026-06-16T09:36:12.5916950Z           "evidence": [
2026-06-16T09:36:12.5917056Z             {
2026-06-16T09:36:12.5917272Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.5917563Z               "line": 435
2026-06-16T09:36:12.5917673Z             },
2026-06-16T09:36:12.5917779Z             {
2026-06-16T09:36:12.5917949Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.5918169Z               "line": 442
2026-06-16T09:36:12.5918279Z             },
2026-06-16T09:36:12.5918384Z             {
2026-06-16T09:36:12.5918555Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.5918680Z               "line": 452
2026-06-16T09:36:12.5918775Z             },
2026-06-16T09:36:12.5918884Z             {
2026-06-16T09:36:12.5919103Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.5919228Z               "line": 458
2026-06-16T09:36:12.5919328Z             },
2026-06-16T09:36:12.5919446Z             {
2026-06-16T09:36:12.5919615Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.5919728Z               "line": 483
2026-06-16T09:36:12.5919836Z             },
2026-06-16T09:36:12.5919942Z             {
2026-06-16T09:36:12.5920092Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-16T09:36:12.5920201Z               "line": 520
2026-06-16T09:36:12.5920308Z             }
2026-06-16T09:36:12.5920431Z           ]
2026-06-16T09:36:12.5920535Z         }
2026-06-16T09:36:12.5920637Z       }
2026-06-16T09:36:12.5920740Z     },
2026-06-16T09:36:12.5920845Z     {
2026-06-16T09:36:12.5920970Z       "id": "REQ-SEAM-UPDATE",
2026-06-16T09:36:12.5921194Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-16T09:36:12.5921313Z       "requiredStages": [
2026-06-16T09:36:12.5921422Z         "impl",
2026-06-16T09:36:12.5921533Z         "unit"
2026-06-16T09:36:12.5921637Z       ],
2026-06-16T09:36:12.5921751Z       "stages": {
2026-06-16T09:36:12.5921857Z         "doc": {
2026-06-16T09:36:12.5921985Z           "complete": false,
2026-06-16T09:36:12.5922110Z           "evidence": []
2026-06-16T09:36:12.5922220Z         },
2026-06-16T09:36:12.5922337Z         "impl": {
2026-06-16T09:36:12.5922456Z           "complete": true,
2026-06-16T09:36:12.5922570Z           "evidence": [
2026-06-16T09:36:12.5922663Z             {
2026-06-16T09:36:12.5922850Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.5922964Z               "line": 28
2026-06-16T09:36:12.5923064Z             },
2026-06-16T09:36:12.5923165Z             {
2026-06-16T09:36:12.5923345Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.5923456Z               "line": 83
2026-06-16T09:36:12.5923560Z             }
2026-06-16T09:36:12.5923674Z           ]
2026-06-16T09:36:12.5923766Z         },
2026-06-16T09:36:12.5923865Z         "int": {
2026-06-16T09:36:12.5923994Z           "complete": false,
2026-06-16T09:36:12.5924100Z           "evidence": []
2026-06-16T09:36:12.5924208Z         },
2026-06-16T09:36:12.5924303Z         "unit": {
2026-06-16T09:36:12.5924424Z           "complete": true,
2026-06-16T09:36:12.5924546Z           "evidence": [
2026-06-16T09:36:12.5924642Z             {
2026-06-16T09:36:12.5924824Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.5924933Z               "line": 286
2026-06-16T09:36:12.5925039Z             },
2026-06-16T09:36:12.5925148Z             {
2026-06-16T09:36:12.5925328Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.5925448Z               "line": 297
2026-06-16T09:36:12.5925556Z             }
2026-06-16T09:36:12.5925657Z           ]
2026-06-16T09:36:12.5925762Z         }
2026-06-16T09:36:12.5925876Z       }
2026-06-16T09:36:12.5925977Z     },
2026-06-16T09:36:12.5926086Z     {
2026-06-16T09:36:12.5926214Z       "id": "REQ-SEC-1",
2026-06-16T09:36:12.5926688Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-16T09:36:12.5926802Z       "requiredStages": [
2026-06-16T09:36:12.5927022Z         "impl",
2026-06-16T09:36:12.5927125Z         "unit"
2026-06-16T09:36:12.5927226Z       ],
2026-06-16T09:36:12.5927337Z       "stages": {
2026-06-16T09:36:12.5927440Z         "doc": {
2026-06-16T09:36:12.5927563Z           "complete": false,
2026-06-16T09:36:12.5927795Z           "evidence": []
2026-06-16T09:36:12.5927890Z         },
2026-06-16T09:36:12.5927996Z         "impl": {
2026-06-16T09:36:12.5928119Z           "complete": true,
2026-06-16T09:36:12.5928233Z           "evidence": [
2026-06-16T09:36:12.5928339Z             {
2026-06-16T09:36:12.5928495Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-16T09:36:12.5928615Z               "line": 86
2026-06-16T09:36:12.5928715Z             },
2026-06-16T09:36:12.5928819Z             {
2026-06-16T09:36:12.5929053Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-16T09:36:12.5929178Z               "line": 116
2026-06-16T09:36:12.5929282Z             },
2026-06-16T09:36:12.5929382Z             {
2026-06-16T09:36:12.5929536Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-16T09:36:12.5929654Z               "line": 130
2026-06-16T09:36:12.5929759Z             },
2026-06-16T09:36:12.5929861Z             {
2026-06-16T09:36:12.5930016Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5930141Z               "line": 109
2026-06-16T09:36:12.5930251Z             },
2026-06-16T09:36:12.5930354Z             {
2026-06-16T09:36:12.5930507Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5930628Z               "line": 130
2026-06-16T09:36:12.5930747Z             },
2026-06-16T09:36:12.5930848Z             {
2026-06-16T09:36:12.5931005Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5931130Z               "line": 143
2026-06-16T09:36:12.5931258Z             },
2026-06-16T09:36:12.5931362Z             {
2026-06-16T09:36:12.5931516Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5931634Z               "line": 209
2026-06-16T09:36:12.5931739Z             },
2026-06-16T09:36:12.5931854Z             {
2026-06-16T09:36:12.5931996Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5932112Z               "line": 235
2026-06-16T09:36:12.5932216Z             },
2026-06-16T09:36:12.5932321Z             {
2026-06-16T09:36:12.5932465Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5932573Z               "line": 4913
2026-06-16T09:36:12.5932675Z             }
2026-06-16T09:36:12.5932770Z           ]
2026-06-16T09:36:12.5932874Z         },
2026-06-16T09:36:12.5932983Z         "int": {
2026-06-16T09:36:12.5933102Z           "complete": false,
2026-06-16T09:36:12.5933224Z           "evidence": []
2026-06-16T09:36:12.5933328Z         },
2026-06-16T09:36:12.5933444Z         "unit": {
2026-06-16T09:36:12.5933562Z           "complete": true,
2026-06-16T09:36:12.5933682Z           "evidence": [
2026-06-16T09:36:12.5933786Z             {
2026-06-16T09:36:12.5933939Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-16T09:36:12.5934059Z               "line": 142
2026-06-16T09:36:12.5934159Z             },
2026-06-16T09:36:12.5934268Z             {
2026-06-16T09:36:12.5934412Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-16T09:36:12.5934520Z               "line": 194
2026-06-16T09:36:12.5934621Z             },
2026-06-16T09:36:12.5934731Z             {
2026-06-16T09:36:12.5934883Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-16T09:36:12.5934989Z               "line": 235
2026-06-16T09:36:12.5935092Z             },
2026-06-16T09:36:12.5935193Z             {
2026-06-16T09:36:12.5935347Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-16T09:36:12.5935450Z               "line": 140
2026-06-16T09:36:12.5935556Z             },
2026-06-16T09:36:12.5935662Z             {
2026-06-16T09:36:12.5935807Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5935926Z               "line": 247
2026-06-16T09:36:12.5936131Z             },
2026-06-16T09:36:12.5936241Z             {
2026-06-16T09:36:12.5936389Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5936507Z               "line": 277
2026-06-16T09:36:12.5936623Z             },
2026-06-16T09:36:12.5936818Z             {
2026-06-16T09:36:12.5936971Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5937084Z               "line": 310
2026-06-16T09:36:12.5937195Z             },
2026-06-16T09:36:12.5937300Z             {
2026-06-16T09:36:12.5937447Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5937563Z               "line": 329
2026-06-16T09:36:12.5937666Z             },
2026-06-16T09:36:12.5937772Z             {
2026-06-16T09:36:12.5937916Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5938028Z               "line": 362
2026-06-16T09:36:12.5938138Z             },
2026-06-16T09:36:12.5938247Z             {
2026-06-16T09:36:12.5938397Z               "path": "crates/spt-store/src/access.rs",
2026-06-16T09:36:12.5938498Z               "line": 386
2026-06-16T09:36:12.5938603Z             },
2026-06-16T09:36:12.5938707Z             {
2026-06-16T09:36:12.5938851Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5939036Z               "line": 7160
2026-06-16T09:36:12.5939143Z             }
2026-06-16T09:36:12.5939247Z           ]
2026-06-16T09:36:12.5939351Z         }
2026-06-16T09:36:12.5939462Z       }
2026-06-16T09:36:12.5939566Z     },
2026-06-16T09:36:12.5939670Z     {
2026-06-16T09:36:12.5939791Z       "id": "REQ-SHELL-1",
2026-06-16T09:36:12.5940740Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-16T09:36:12.5940867Z       "requiredStages": [
2026-06-16T09:36:12.5940971Z         "impl",
2026-06-16T09:36:12.5941081Z         "unit",
2026-06-16T09:36:12.5941188Z         "int"
2026-06-16T09:36:12.5941283Z       ],
2026-06-16T09:36:12.5941399Z       "stages": {
2026-06-16T09:36:12.5941503Z         "doc": {
2026-06-16T09:36:12.5941627Z           "complete": false,
2026-06-16T09:36:12.5941737Z           "evidence": []
2026-06-16T09:36:12.5941842Z         },
2026-06-16T09:36:12.5941946Z         "impl": {
2026-06-16T09:36:12.5942076Z           "complete": true,
2026-06-16T09:36:12.5942194Z           "evidence": [
2026-06-16T09:36:12.5942300Z             {
2026-06-16T09:36:12.5942462Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.5942566Z               "line": 189
2026-06-16T09:36:12.5942682Z             },
2026-06-16T09:36:12.5942786Z             {
2026-06-16T09:36:12.5942949Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.5943067Z               "line": 268
2026-06-16T09:36:12.5943172Z             },
2026-06-16T09:36:12.5943278Z             {
2026-06-16T09:36:12.5943429Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.5943552Z               "line": 27
2026-06-16T09:36:12.5943662Z             },
2026-06-16T09:36:12.5943770Z             {
2026-06-16T09:36:12.5943932Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.5944033Z               "line": 52
2026-06-16T09:36:12.5944141Z             },
2026-06-16T09:36:12.5944247Z             {
2026-06-16T09:36:12.5944395Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.5944513Z               "line": 144
2026-06-16T09:36:12.5944619Z             },
2026-06-16T09:36:12.5944719Z             {
2026-06-16T09:36:12.5944872Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.5944986Z               "line": 176
2026-06-16T09:36:12.5945081Z             },
2026-06-16T09:36:12.5945191Z             {
2026-06-16T09:36:12.5945333Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5945549Z               "line": 22
2026-06-16T09:36:12.5945653Z             },
2026-06-16T09:36:12.5945753Z             {
2026-06-16T09:36:12.5945907Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5946111Z               "line": 65
2026-06-16T09:36:12.5946226Z             },
2026-06-16T09:36:12.5946338Z             {
2026-06-16T09:36:12.5946487Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5946597Z               "line": 76
2026-06-16T09:36:12.5946705Z             },
2026-06-16T09:36:12.5946811Z             {
2026-06-16T09:36:12.5946959Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5947082Z               "line": 150
2026-06-16T09:36:12.5947188Z             },
2026-06-16T09:36:12.5947293Z             {
2026-06-16T09:36:12.5947450Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5947559Z               "line": 209
2026-06-16T09:36:12.5947663Z             },
2026-06-16T09:36:12.5947770Z             {
2026-06-16T09:36:12.5947922Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5948041Z               "line": 254
2026-06-16T09:36:12.5948142Z             },
2026-06-16T09:36:12.5948250Z             {
2026-06-16T09:36:12.5948395Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5948513Z               "line": 276
2026-06-16T09:36:12.5948622Z             },
2026-06-16T09:36:12.5948731Z             {
2026-06-16T09:36:12.5948881Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5949063Z               "line": 289
2026-06-16T09:36:12.5949168Z             },
2026-06-16T09:36:12.5949272Z             {
2026-06-16T09:36:12.5949421Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.5949544Z               "line": 217
2026-06-16T09:36:12.5949649Z             },
2026-06-16T09:36:12.5949754Z             {
2026-06-16T09:36:12.5949901Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.5950008Z               "line": 233
2026-06-16T09:36:12.5950112Z             },
2026-06-16T09:36:12.5950221Z             {
2026-06-16T09:36:12.5950375Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.5950484Z               "line": 41
2026-06-16T09:36:12.5950588Z             },
2026-06-16T09:36:12.5950690Z             {
2026-06-16T09:36:12.5950846Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.5950952Z               "line": 222
2026-06-16T09:36:12.5951061Z             },
2026-06-16T09:36:12.5951161Z             {
2026-06-16T09:36:12.5951310Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-16T09:36:12.5951422Z               "line": 173
2026-06-16T09:36:12.5951521Z             },
2026-06-16T09:36:12.5951627Z             {
2026-06-16T09:36:12.5951768Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.5951882Z               "line": 346
2026-06-16T09:36:12.5951992Z             },
2026-06-16T09:36:12.5952097Z             {
2026-06-16T09:36:12.5952245Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.5952355Z               "line": 411
2026-06-16T09:36:12.5952473Z             },
2026-06-16T09:36:12.5952575Z             {
2026-06-16T09:36:12.5952731Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5952846Z               "line": 329
2026-06-16T09:36:12.5952946Z             },
2026-06-16T09:36:12.5953050Z             {
2026-06-16T09:36:12.5953184Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5953303Z               "line": 5657
2026-06-16T09:36:12.5953408Z             },
2026-06-16T09:36:12.5953514Z             {
2026-06-16T09:36:12.5953646Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5953761Z               "line": 5807
2026-06-16T09:36:12.5953877Z             },
2026-06-16T09:36:12.5953980Z             {
2026-06-16T09:36:12.5954107Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5954349Z               "line": 5983
2026-06-16T09:36:12.5954453Z             }
2026-06-16T09:36:12.5954559Z           ]
2026-06-16T09:36:12.5954664Z         },
2026-06-16T09:36:12.5954764Z         "int": {
2026-06-16T09:36:12.5954978Z           "complete": true,
2026-06-16T09:36:12.5955088Z           "evidence": [
2026-06-16T09:36:12.5955188Z             {
2026-06-16T09:36:12.5955359Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.5955479Z               "line": 709
2026-06-16T09:36:12.5955579Z             },
2026-06-16T09:36:12.5955688Z             {
2026-06-16T09:36:12.5955851Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-16T09:36:12.5955979Z               "line": 8
2026-06-16T09:36:12.5956086Z             },
2026-06-16T09:36:12.5956194Z             {
2026-06-16T09:36:12.5956357Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-16T09:36:12.5956471Z               "line": 49
2026-06-16T09:36:12.5956585Z             },
2026-06-16T09:36:12.5956691Z             {
2026-06-16T09:36:12.5956842Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5956960Z               "line": 776
2026-06-16T09:36:12.5957070Z             },
2026-06-16T09:36:12.5957185Z             {
2026-06-16T09:36:12.5957332Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5957452Z               "line": 1211
2026-06-16T09:36:12.5957557Z             },
2026-06-16T09:36:12.5957662Z             {
2026-06-16T09:36:12.5957815Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-16T09:36:12.5957923Z               "line": 17
2026-06-16T09:36:12.5958034Z             },
2026-06-16T09:36:12.5958138Z             {
2026-06-16T09:36:12.5958286Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-16T09:36:12.5958397Z               "line": 14
2026-06-16T09:36:12.5958511Z             }
2026-06-16T09:36:12.5958616Z           ]
2026-06-16T09:36:12.5958707Z         },
2026-06-16T09:36:12.5958815Z         "unit": {
2026-06-16T09:36:12.5958935Z           "complete": true,
2026-06-16T09:36:12.5959111Z           "evidence": [
2026-06-16T09:36:12.5959215Z             {
2026-06-16T09:36:12.5959377Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.5959522Z               "line": 246
2026-06-16T09:36:12.5959623Z             },
2026-06-16T09:36:12.5959729Z             {
2026-06-16T09:36:12.5959875Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.5959995Z               "line": 279
2026-06-16T09:36:12.5960095Z             },
2026-06-16T09:36:12.5960199Z             {
2026-06-16T09:36:12.5960348Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.5960471Z               "line": 319
2026-06-16T09:36:12.5960582Z             },
2026-06-16T09:36:12.5960696Z             {
2026-06-16T09:36:12.5960848Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5960963Z               "line": 594
2026-06-16T09:36:12.5961077Z             },
2026-06-16T09:36:12.5961193Z             {
2026-06-16T09:36:12.5961329Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5961449Z               "line": 667
2026-06-16T09:36:12.5961555Z             },
2026-06-16T09:36:12.5961658Z             {
2026-06-16T09:36:12.5961808Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5961931Z               "line": 811
2026-06-16T09:36:12.5962049Z             },
2026-06-16T09:36:12.5962154Z             {
2026-06-16T09:36:12.5962300Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.5962418Z               "line": 595
2026-06-16T09:36:12.5962519Z             },
2026-06-16T09:36:12.5962628Z             {
2026-06-16T09:36:12.5962781Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-16T09:36:12.5962900Z               "line": 399
2026-06-16T09:36:12.5963004Z             },
2026-06-16T09:36:12.5963115Z             {
2026-06-16T09:36:12.5963372Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5963497Z               "line": 7802
2026-06-16T09:36:12.5963596Z             },
2026-06-16T09:36:12.5963701Z             {
2026-06-16T09:36:12.5963949Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5964069Z               "line": 8126
2026-06-16T09:36:12.5964178Z             },
2026-06-16T09:36:12.5964278Z             {
2026-06-16T09:36:12.5964418Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5964535Z               "line": 8543
2026-06-16T09:36:12.5964639Z             }
2026-06-16T09:36:12.5964744Z           ]
2026-06-16T09:36:12.5964847Z         }
2026-06-16T09:36:12.5964956Z       }
2026-06-16T09:36:12.5965062Z     },
2026-06-16T09:36:12.5965167Z     {
2026-06-16T09:36:12.5965289Z       "id": "REQ-SHELL-2",
2026-06-16T09:36:12.5966970Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-16T09:36:12.5967126Z       "requiredStages": [
2026-06-16T09:36:12.5967232Z         "impl",
2026-06-16T09:36:12.5967337Z         "unit",
2026-06-16T09:36:12.5967450Z         "int"
2026-06-16T09:36:12.5967554Z       ],
2026-06-16T09:36:12.5967660Z       "stages": {
2026-06-16T09:36:12.5967759Z         "doc": {
2026-06-16T09:36:12.5967888Z           "complete": false,
2026-06-16T09:36:12.5968003Z           "evidence": []
2026-06-16T09:36:12.5968117Z         },
2026-06-16T09:36:12.5968227Z         "impl": {
2026-06-16T09:36:12.5968342Z           "complete": true,
2026-06-16T09:36:12.5968464Z           "evidence": [
2026-06-16T09:36:12.5968571Z             {
2026-06-16T09:36:12.5968756Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.5968856Z               "line": 217
2026-06-16T09:36:12.5969037Z             },
2026-06-16T09:36:12.5969147Z             {
2026-06-16T09:36:12.5969300Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.5969423Z               "line": 403
2026-06-16T09:36:12.5969530Z             },
2026-06-16T09:36:12.5969633Z             {
2026-06-16T09:36:12.5969780Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-16T09:36:12.5969904Z               "line": 250
2026-06-16T09:36:12.5970021Z             },
2026-06-16T09:36:12.5970116Z             {
2026-06-16T09:36:12.5970275Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.5970392Z               "line": 353
2026-06-16T09:36:12.5970498Z             },
2026-06-16T09:36:12.5970603Z             {
2026-06-16T09:36:12.5970759Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.5970885Z               "line": 30
2026-06-16T09:36:12.5970993Z             },
2026-06-16T09:36:12.5971099Z             {
2026-06-16T09:36:12.5971246Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.5971370Z               "line": 409
2026-06-16T09:36:12.5971481Z             },
2026-06-16T09:36:12.5971590Z             {
2026-06-16T09:36:12.5971743Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.5971857Z               "line": 445
2026-06-16T09:36:12.5971971Z             },
2026-06-16T09:36:12.5972077Z             {
2026-06-16T09:36:12.5972232Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.5972348Z               "line": 660
2026-06-16T09:36:12.5972464Z             },
2026-06-16T09:36:12.5972566Z             {
2026-06-16T09:36:12.5972714Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.5972837Z               "line": 348
2026-06-16T09:36:12.5972940Z             },
2026-06-16T09:36:12.5973175Z             {
2026-06-16T09:36:12.5973321Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.5973437Z               "line": 115
2026-06-16T09:36:12.5973550Z             },
2026-06-16T09:36:12.5973651Z             {
2026-06-16T09:36:12.5973913Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5974019Z               "line": 120
2026-06-16T09:36:12.5974137Z             },
2026-06-16T09:36:12.5974247Z             {
2026-06-16T09:36:12.5974395Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5974518Z               "line": 369
2026-06-16T09:36:12.5974615Z             },
2026-06-16T09:36:12.5974729Z             {
2026-06-16T09:36:12.5974876Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5975007Z               "line": 495
2026-06-16T09:36:12.5975114Z             },
2026-06-16T09:36:12.5975218Z             {
2026-06-16T09:36:12.5975370Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5975479Z               "line": 24
2026-06-16T09:36:12.5975588Z             },
2026-06-16T09:36:12.5975684Z             {
2026-06-16T09:36:12.5975831Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5975961Z               "line": 76
2026-06-16T09:36:12.5976065Z             },
2026-06-16T09:36:12.5976174Z             {
2026-06-16T09:36:12.5976323Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5976446Z               "line": 154
2026-06-16T09:36:12.5976552Z             },
2026-06-16T09:36:12.5976656Z             {
2026-06-16T09:36:12.5976804Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5976915Z               "line": 177
2026-06-16T09:36:12.5977024Z             },
2026-06-16T09:36:12.5977128Z             {
2026-06-16T09:36:12.5977276Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5977381Z               "line": 273
2026-06-16T09:36:12.5977496Z             },
2026-06-16T09:36:12.5977605Z             {
2026-06-16T09:36:12.5977748Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5977859Z               "line": 455
2026-06-16T09:36:12.5977953Z             },
2026-06-16T09:36:12.5978061Z             {
2026-06-16T09:36:12.5978210Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5978319Z               "line": 537
2026-06-16T09:36:12.5978424Z             },
2026-06-16T09:36:12.5978530Z             {
2026-06-16T09:36:12.5978696Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-16T09:36:12.5978802Z               "line": 27
2026-06-16T09:36:12.5978906Z             },
2026-06-16T09:36:12.5979092Z             {
2026-06-16T09:36:12.5979235Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-16T09:36:12.5979349Z               "line": 48
2026-06-16T09:36:12.5979455Z             },
2026-06-16T09:36:12.5979559Z             {
2026-06-16T09:36:12.5979712Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.5979827Z               "line": 513
2026-06-16T09:36:12.5979930Z             },
2026-06-16T09:36:12.5980031Z             {
2026-06-16T09:36:12.5980175Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5980292Z               "line": 1720
2026-06-16T09:36:12.5980397Z             },
2026-06-16T09:36:12.5980501Z             {
2026-06-16T09:36:12.5980638Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5980753Z               "line": 5671
2026-06-16T09:36:12.5980854Z             },
2026-06-16T09:36:12.5980962Z             {
2026-06-16T09:36:12.5981092Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5981211Z               "line": 5732
2026-06-16T09:36:12.5981315Z             },
2026-06-16T09:36:12.5981416Z             {
2026-06-16T09:36:12.5981549Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5981659Z               "line": 5760
2026-06-16T09:36:12.5981778Z             },
2026-06-16T09:36:12.5981983Z             {
2026-06-16T09:36:12.5982112Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5982225Z               "line": 5814
2026-06-16T09:36:12.5982327Z             },
2026-06-16T09:36:12.5982441Z             {
2026-06-16T09:36:12.5982661Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5982784Z               "line": 6069
2026-06-16T09:36:12.5982884Z             },
2026-06-16T09:36:12.5983000Z             {
2026-06-16T09:36:12.5983131Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5983245Z               "line": 6129
2026-06-16T09:36:12.5986649Z             },
2026-06-16T09:36:12.5986788Z             {
2026-06-16T09:36:12.5986954Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.5987073Z               "line": 298
2026-06-16T09:36:12.5987184Z             },
2026-06-16T09:36:12.5987288Z             {
2026-06-16T09:36:12.5987436Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.5987559Z               "line": 339
2026-06-16T09:36:12.5987669Z             }
2026-06-16T09:36:12.5987775Z           ]
2026-06-16T09:36:12.5987874Z         },
2026-06-16T09:36:12.5987984Z         "int": {
2026-06-16T09:36:12.5988105Z           "complete": true,
2026-06-16T09:36:12.5988231Z           "evidence": [
2026-06-16T09:36:12.5988332Z             {
2026-06-16T09:36:12.5988499Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.5988613Z               "line": 702
2026-06-16T09:36:12.5988722Z             },
2026-06-16T09:36:12.5988823Z             {
2026-06-16T09:36:12.5989047Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5989162Z               "line": 776
2026-06-16T09:36:12.5989270Z             },
2026-06-16T09:36:12.5989372Z             {
2026-06-16T09:36:12.5989523Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.5989638Z               "line": 1211
2026-06-16T09:36:12.5989752Z             },
2026-06-16T09:36:12.5989852Z             {
2026-06-16T09:36:12.5990020Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-16T09:36:12.5990138Z               "line": 18
2026-06-16T09:36:12.5990243Z             }
2026-06-16T09:36:12.5990345Z           ]
2026-06-16T09:36:12.5990453Z         },
2026-06-16T09:36:12.5990558Z         "unit": {
2026-06-16T09:36:12.5990678Z           "complete": true,
2026-06-16T09:36:12.5990796Z           "evidence": [
2026-06-16T09:36:12.5990900Z             {
2026-06-16T09:36:12.5991057Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.5991169Z               "line": 744
2026-06-16T09:36:12.5991275Z             },
2026-06-16T09:36:12.5991380Z             {
2026-06-16T09:36:12.5991522Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-16T09:36:12.5991642Z               "line": 796
2026-06-16T09:36:12.5991751Z             },
2026-06-16T09:36:12.5991860Z             {
2026-06-16T09:36:12.5992014Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5992123Z               "line": 700
2026-06-16T09:36:12.5992224Z             },
2026-06-16T09:36:12.5992334Z             {
2026-06-16T09:36:12.5992485Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5992610Z               "line": 749
2026-06-16T09:36:12.5992715Z             },
2026-06-16T09:36:12.5992819Z             {
2026-06-16T09:36:12.5992958Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.5993077Z               "line": 773
2026-06-16T09:36:12.5993193Z             },
2026-06-16T09:36:12.5993301Z             {
2026-06-16T09:36:12.5993454Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5993564Z               "line": 602
2026-06-16T09:36:12.5993668Z             },
2026-06-16T09:36:12.5993767Z             {
2026-06-16T09:36:12.5993915Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5994032Z               "line": 623
2026-06-16T09:36:12.5994127Z             },
2026-06-16T09:36:12.5994375Z             {
2026-06-16T09:36:12.5994514Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5994633Z               "line": 659
2026-06-16T09:36:12.5994737Z             },
2026-06-16T09:36:12.5994934Z             {
2026-06-16T09:36:12.5995086Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5995192Z               "line": 713
2026-06-16T09:36:12.5995305Z             },
2026-06-16T09:36:12.5995405Z             {
2026-06-16T09:36:12.5995553Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5995667Z               "line": 731
2026-06-16T09:36:12.5995773Z             },
2026-06-16T09:36:12.5995882Z             {
2026-06-16T09:36:12.5996030Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5996150Z               "line": 765
2026-06-16T09:36:12.5996253Z             },
2026-06-16T09:36:12.5996362Z             {
2026-06-16T09:36:12.5996510Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-16T09:36:12.5996632Z               "line": 840
2026-06-16T09:36:12.5996742Z             },
2026-06-16T09:36:12.5996848Z             {
2026-06-16T09:36:12.5997013Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-16T09:36:12.5997119Z               "line": 85
2026-06-16T09:36:12.5997237Z             },
2026-06-16T09:36:12.5997328Z             {
2026-06-16T09:36:12.5997476Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5997595Z               "line": 6960
2026-06-16T09:36:12.5997701Z             },
2026-06-16T09:36:12.5997805Z             {
2026-06-16T09:36:12.5997934Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5998050Z               "line": 7880
2026-06-16T09:36:12.5998154Z             },
2026-06-16T09:36:12.5998254Z             {
2026-06-16T09:36:12.5998393Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5998506Z               "line": 7950
2026-06-16T09:36:12.5998612Z             },
2026-06-16T09:36:12.5998698Z             {
2026-06-16T09:36:12.5998840Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.5999078Z               "line": 7988
2026-06-16T09:36:12.5999192Z             }
2026-06-16T09:36:12.5999302Z           ]
2026-06-16T09:36:12.5999416Z         }
2026-06-16T09:36:12.5999521Z       }
2026-06-16T09:36:12.5999621Z     },
2026-06-16T09:36:12.5999727Z     {
2026-06-16T09:36:12.5999840Z       "id": "REQ-SHELL-3",
2026-06-16T09:36:12.6001772Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-16T09:36:12.6001926Z       "requiredStages": [
2026-06-16T09:36:12.6002030Z         "impl",
2026-06-16T09:36:12.6002140Z         "unit",
2026-06-16T09:36:12.6002260Z         "int"
2026-06-16T09:36:12.6002359Z       ],
2026-06-16T09:36:12.6002469Z       "stages": {
2026-06-16T09:36:12.6002569Z         "doc": {
2026-06-16T09:36:12.6002693Z           "complete": false,
2026-06-16T09:36:12.6002809Z           "evidence": []
2026-06-16T09:36:12.6002918Z         },
2026-06-16T09:36:12.6003027Z         "impl": {
2026-06-16T09:36:12.6003147Z           "complete": true,
2026-06-16T09:36:12.6003265Z           "evidence": [
2026-06-16T09:36:12.6003365Z             {
2026-06-16T09:36:12.6003528Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.6003633Z               "line": 224
2026-06-16T09:36:12.6003733Z             },
2026-06-16T09:36:12.6003843Z             {
2026-06-16T09:36:12.6003986Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6004228Z               "line": 36
2026-06-16T09:36:12.6004332Z             },
2026-06-16T09:36:12.6004433Z             {
2026-06-16T09:36:12.6004578Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6004793Z               "line": 137
2026-06-16T09:36:12.6004898Z             },
2026-06-16T09:36:12.6005002Z             {
2026-06-16T09:36:12.6005160Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6005273Z               "line": 153
2026-06-16T09:36:12.6005384Z             },
2026-06-16T09:36:12.6005494Z             {
2026-06-16T09:36:12.6005641Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6005752Z               "line": 165
2026-06-16T09:36:12.6005856Z             },
2026-06-16T09:36:12.6005956Z             {
2026-06-16T09:36:12.6006104Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6006209Z               "line": 242
2026-06-16T09:36:12.6006315Z             },
2026-06-16T09:36:12.6006419Z             {
2026-06-16T09:36:12.6006571Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6006687Z               "line": 267
2026-06-16T09:36:12.6006804Z             },
2026-06-16T09:36:12.6006904Z             {
2026-06-16T09:36:12.6007060Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6007177Z               "line": 293
2026-06-16T09:36:12.6007283Z             },
2026-06-16T09:36:12.6007394Z             {
2026-06-16T09:36:12.6007540Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-16T09:36:12.6007661Z               "line": 51
2026-06-16T09:36:12.6007765Z             },
2026-06-16T09:36:12.6007869Z             {
2026-06-16T09:36:12.6008018Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.6008122Z               "line": 333
2026-06-16T09:36:12.6008228Z             },
2026-06-16T09:36:12.6008332Z             {
2026-06-16T09:36:12.6008494Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.6008605Z               "line": 373
2026-06-16T09:36:12.6008709Z             },
2026-06-16T09:36:12.6008814Z             {
2026-06-16T09:36:12.6009027Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.6009162Z               "line": 602
2026-06-16T09:36:12.6009258Z             },
2026-06-16T09:36:12.6009366Z             {
2026-06-16T09:36:12.6009521Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.6009625Z               "line": 132
2026-06-16T09:36:12.6009738Z             },
2026-06-16T09:36:12.6009842Z             {
2026-06-16T09:36:12.6009986Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.6010104Z               "line": 443
2026-06-16T09:36:12.6010215Z             },
2026-06-16T09:36:12.6010319Z             {
2026-06-16T09:36:12.6010468Z               "path": "crates/spt-proto/src/event.rs",
2026-06-16T09:36:12.6010577Z               "line": 74
2026-06-16T09:36:12.6010681Z             },
2026-06-16T09:36:12.6010792Z             {
2026-06-16T09:36:12.6010939Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.6011054Z               "line": 530
2026-06-16T09:36:12.6011169Z             },
2026-06-16T09:36:12.6011263Z             {
2026-06-16T09:36:12.6011417Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.6011526Z               "line": 392
2026-06-16T09:36:12.6011635Z             },
2026-06-16T09:36:12.6011741Z             {
2026-06-16T09:36:12.6011869Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6011992Z               "line": 5855
2026-06-16T09:36:12.6012097Z             }
2026-06-16T09:36:12.6012200Z           ]
2026-06-16T09:36:12.6012304Z         },
2026-06-16T09:36:12.6012419Z         "int": {
2026-06-16T09:36:12.6012529Z           "complete": true,
2026-06-16T09:36:12.6012642Z           "evidence": [
2026-06-16T09:36:12.6012748Z             {
2026-06-16T09:36:12.6013010Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.6013129Z               "line": 1260
2026-06-16T09:36:12.6013234Z             },
2026-06-16T09:36:12.6013339Z             {
2026-06-16T09:36:12.6013567Z               "path": "crates/spt/tests/drive_e2e.rs",
2026-06-16T09:36:12.6013688Z               "line": 17
2026-06-16T09:36:12.6013792Z             }
2026-06-16T09:36:12.6013897Z           ]
2026-06-16T09:36:12.6014003Z         },
2026-06-16T09:36:12.6014106Z         "unit": {
2026-06-16T09:36:12.6014221Z           "complete": true,
2026-06-16T09:36:12.6014332Z           "evidence": [
2026-06-16T09:36:12.6014435Z             {
2026-06-16T09:36:12.6014579Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6014694Z               "line": 311
2026-06-16T09:36:12.6014807Z             },
2026-06-16T09:36:12.6014906Z             {
2026-06-16T09:36:12.6015049Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6015157Z               "line": 325
2026-06-16T09:36:12.6015262Z             },
2026-06-16T09:36:12.6015363Z             {
2026-06-16T09:36:12.6015500Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6015616Z               "line": 343
2026-06-16T09:36:12.6015725Z             },
2026-06-16T09:36:12.6015834Z             {
2026-06-16T09:36:12.6015978Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6016096Z               "line": 364
2026-06-16T09:36:12.6016216Z             },
2026-06-16T09:36:12.6016321Z             {
2026-06-16T09:36:12.6016468Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-16T09:36:12.6016589Z               "line": 376
2026-06-16T09:36:12.6016693Z             },
2026-06-16T09:36:12.6016792Z             {
2026-06-16T09:36:12.6016946Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.6017064Z               "line": 897
2026-06-16T09:36:12.6017170Z             },
2026-06-16T09:36:12.6017280Z             {
2026-06-16T09:36:12.6017430Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.6017550Z               "line": 957
2026-06-16T09:36:12.6017639Z             },
2026-06-16T09:36:12.6017752Z             {
2026-06-16T09:36:12.6017916Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-16T09:36:12.6018020Z               "line": 338
2026-06-16T09:36:12.6018133Z             },
2026-06-16T09:36:12.6018230Z             {
2026-06-16T09:36:12.6018372Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.6018492Z               "line": 616
2026-06-16T09:36:12.6018592Z             },
2026-06-16T09:36:12.6018696Z             {
2026-06-16T09:36:12.6018821Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6018930Z               "line": 7662
2026-06-16T09:36:12.6019102Z             }
2026-06-16T09:36:12.6019212Z           ]
2026-06-16T09:36:12.6019317Z         }
2026-06-16T09:36:12.6019417Z       }
2026-06-16T09:36:12.6019527Z     },
2026-06-16T09:36:12.6019627Z     {
2026-06-16T09:36:12.6019752Z       "id": "REQ-SHELL-4",
2026-06-16T09:36:12.6021681Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-16T09:36:12.6021814Z       "requiredStages": [
2026-06-16T09:36:12.6021928Z         "doc",
2026-06-16T09:36:12.6022054Z         "impl",
2026-06-16T09:36:12.6022176Z         "unit",
2026-06-16T09:36:12.6022291Z         "int"
2026-06-16T09:36:12.6022401Z       ],
2026-06-16T09:36:12.6022638Z       "stages": {
2026-06-16T09:36:12.6022742Z         "doc": {
2026-06-16T09:36:12.6022869Z           "complete": true,
2026-06-16T09:36:12.6022974Z           "evidence": [
2026-06-16T09:36:12.6023080Z             {
2026-06-16T09:36:12.6023318Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.6023432Z               "line": 262
2026-06-16T09:36:12.6023536Z             },
2026-06-16T09:36:12.6023638Z             {
2026-06-16T09:36:12.6023900Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-16T09:36:12.6024014Z               "line": 88
2026-06-16T09:36:12.6024113Z             }
2026-06-16T09:36:12.6024214Z           ]
2026-06-16T09:36:12.6024324Z         },
2026-06-16T09:36:12.6024423Z         "impl": {
2026-06-16T09:36:12.6024529Z           "complete": true,
2026-06-16T09:36:12.6024648Z           "evidence": [
2026-06-16T09:36:12.6024748Z             {
2026-06-16T09:36:12.6024892Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.6025005Z               "line": 238
2026-06-16T09:36:12.6025115Z             },
2026-06-16T09:36:12.6025221Z             {
2026-06-16T09:36:12.6025367Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-16T09:36:12.6025486Z               "line": 61
2026-06-16T09:36:12.6025590Z             },
2026-06-16T09:36:12.6025698Z             {
2026-06-16T09:36:12.6025841Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.6025956Z               "line": 218
2026-06-16T09:36:12.6026060Z             },
2026-06-16T09:36:12.6026166Z             {
2026-06-16T09:36:12.6026318Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.6026432Z               "line": 245
2026-06-16T09:36:12.6026538Z             },
2026-06-16T09:36:12.6026642Z             {
2026-06-16T09:36:12.6026781Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.6026900Z               "line": 549
2026-06-16T09:36:12.6027005Z             },
2026-06-16T09:36:12.6027110Z             {
2026-06-16T09:36:12.6027257Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.6027376Z               "line": 1059
2026-06-16T09:36:12.6027492Z             },
2026-06-16T09:36:12.6027596Z             {
2026-06-16T09:36:12.6027745Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.6027849Z               "line": 1071
2026-06-16T09:36:12.6027953Z             },
2026-06-16T09:36:12.6028062Z             {
2026-06-16T09:36:12.6028204Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.6028321Z               "line": 1112
2026-06-16T09:36:12.6028423Z             },
2026-06-16T09:36:12.6028528Z             {
2026-06-16T09:36:12.6028675Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.6028795Z               "line": 451
2026-06-16T09:36:12.6028899Z             },
2026-06-16T09:36:12.6029081Z             {
2026-06-16T09:36:12.6029233Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6029338Z               "line": 44
2026-06-16T09:36:12.6029448Z             },
2026-06-16T09:36:12.6029548Z             {
2026-06-16T09:36:12.6029706Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6029824Z               "line": 208
2026-06-16T09:36:12.6029924Z             },
2026-06-16T09:36:12.6030025Z             {
2026-06-16T09:36:12.6030172Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6030292Z               "line": 227
2026-06-16T09:36:12.6030397Z             },
2026-06-16T09:36:12.6030506Z             {
2026-06-16T09:36:12.6030651Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6030768Z               "line": 253
2026-06-16T09:36:12.6030867Z             },
2026-06-16T09:36:12.6030968Z             {
2026-06-16T09:36:12.6031120Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6031225Z               "line": 272
2026-06-16T09:36:12.6031445Z             },
2026-06-16T09:36:12.6031544Z             {
2026-06-16T09:36:12.6031693Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6031811Z               "line": 392
2026-06-16T09:36:12.6031917Z             },
2026-06-16T09:36:12.6032135Z             {
2026-06-16T09:36:12.6032285Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6032393Z               "line": 421
2026-06-16T09:36:12.6032503Z             },
2026-06-16T09:36:12.6032599Z             {
2026-06-16T09:36:12.6032746Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6032851Z               "line": 439
2026-06-16T09:36:12.6032961Z             },
2026-06-16T09:36:12.6033064Z             {
2026-06-16T09:36:12.6033226Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6033339Z               "line": 458
2026-06-16T09:36:12.6033448Z             },
2026-06-16T09:36:12.6033549Z             {
2026-06-16T09:36:12.6033696Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6033806Z               "line": 486
2026-06-16T09:36:12.6033911Z             },
2026-06-16T09:36:12.6034011Z             {
2026-06-16T09:36:12.6034159Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.6034269Z               "line": 549
2026-06-16T09:36:12.6034373Z             },
2026-06-16T09:36:12.6034479Z             {
2026-06-16T09:36:12.6034632Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.6034736Z               "line": 754
2026-06-16T09:36:12.6034846Z             },
2026-06-16T09:36:12.6034946Z             {
2026-06-16T09:36:12.6035094Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.6035213Z               "line": 431
2026-06-16T09:36:12.6035308Z             },
2026-06-16T09:36:12.6035414Z             {
2026-06-16T09:36:12.6035546Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6035666Z               "line": 5911
2026-06-16T09:36:12.6035762Z             }
2026-06-16T09:36:12.6035866Z           ]
2026-06-16T09:36:12.6035975Z         },
2026-06-16T09:36:12.6036079Z         "int": {
2026-06-16T09:36:12.6036207Z           "complete": true,
2026-06-16T09:36:12.6036325Z           "evidence": [
2026-06-16T09:36:12.6036430Z             {
2026-06-16T09:36:12.6036582Z               "path": "crates/spt/tests/tunnel_e2e.rs",
2026-06-16T09:36:12.6036692Z               "line": 18
2026-06-16T09:36:12.6036802Z             }
2026-06-16T09:36:12.6036906Z           ]
2026-06-16T09:36:12.6037017Z         },
2026-06-16T09:36:12.6037121Z         "unit": {
2026-06-16T09:36:12.6037245Z           "complete": true,
2026-06-16T09:36:12.6037360Z           "evidence": [
2026-06-16T09:36:12.6037464Z             {
2026-06-16T09:36:12.6037617Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.6037728Z               "line": 1309
2026-06-16T09:36:12.6037836Z             },
2026-06-16T09:36:12.6037936Z             {
2026-06-16T09:36:12.6038085Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.6038213Z               "line": 1338
2026-06-16T09:36:12.6038314Z             },
2026-06-16T09:36:12.6038428Z             {
2026-06-16T09:36:12.6038560Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6038685Z               "line": 504
2026-06-16T09:36:12.6038796Z             },
2026-06-16T09:36:12.6038901Z             {
2026-06-16T09:36:12.6039116Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6039235Z               "line": 514
2026-06-16T09:36:12.6039341Z             },
2026-06-16T09:36:12.6039450Z             {
2026-06-16T09:36:12.6039593Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6039703Z               "line": 531
2026-06-16T09:36:12.6039807Z             },
2026-06-16T09:36:12.6039918Z             {
2026-06-16T09:36:12.6040060Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6040308Z               "line": 543
2026-06-16T09:36:12.6040413Z             },
2026-06-16T09:36:12.6040523Z             {
2026-06-16T09:36:12.6040675Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-16T09:36:12.6040780Z               "line": 555
2026-06-16T09:36:12.6040990Z             },
2026-06-16T09:36:12.6041095Z             {
2026-06-16T09:36:12.6041244Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.6041351Z               "line": 1008
2026-06-16T09:36:12.6041460Z             },
2026-06-16T09:36:12.6041571Z             {
2026-06-16T09:36:12.6041700Z               "path": "crates/spt/src/api/mod.rs",
2026-06-16T09:36:12.6041823Z               "line": 623
2026-06-16T09:36:12.6041929Z             }
2026-06-16T09:36:12.6042033Z           ]
2026-06-16T09:36:12.6042138Z         }
2026-06-16T09:36:12.6042239Z       }
2026-06-16T09:36:12.6042343Z     },
2026-06-16T09:36:12.6042448Z     {
2026-06-16T09:36:12.6042558Z       "id": "REQ-SHELL-5",
2026-06-16T09:36:12.6043801Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-16T09:36:12.6043937Z       "requiredStages": [
2026-06-16T09:36:12.6044037Z         "doc",
2026-06-16T09:36:12.6044143Z         "impl",
2026-06-16T09:36:12.6044252Z         "unit",
2026-06-16T09:36:12.6044356Z         "int"
2026-06-16T09:36:12.6044458Z       ],
2026-06-16T09:36:12.6044567Z       "stages": {
2026-06-16T09:36:12.6044680Z         "doc": {
2026-06-16T09:36:12.6044801Z           "complete": true,
2026-06-16T09:36:12.6044914Z           "evidence": [
2026-06-16T09:36:12.6045010Z             {
2026-06-16T09:36:12.6045139Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.6045276Z               "line": 265
2026-06-16T09:36:12.6045378Z             }
2026-06-16T09:36:12.6045482Z           ]
2026-06-16T09:36:12.6045586Z         },
2026-06-16T09:36:12.6045693Z         "impl": {
2026-06-16T09:36:12.6045815Z           "complete": true,
2026-06-16T09:36:12.6045930Z           "evidence": [
2026-06-16T09:36:12.6046027Z             {
2026-06-16T09:36:12.6046178Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-16T09:36:12.6046294Z               "line": 255
2026-06-16T09:36:12.6046399Z             }
2026-06-16T09:36:12.6046501Z           ]
2026-06-16T09:36:12.6046606Z         },
2026-06-16T09:36:12.6046711Z         "int": {
2026-06-16T09:36:12.6046837Z           "complete": true,
2026-06-16T09:36:12.6046948Z           "evidence": [
2026-06-16T09:36:12.6047057Z             {
2026-06-16T09:36:12.6047209Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.6047325Z               "line": 825
2026-06-16T09:36:12.6047429Z             },
2026-06-16T09:36:12.6047533Z             {
2026-06-16T09:36:12.6047677Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.6047786Z               "line": 1288
2026-06-16T09:36:12.6047891Z             },
2026-06-16T09:36:12.6048011Z             {
2026-06-16T09:36:12.6048182Z               "path": "crates/spt/tests/gateway_owner_shell_e2e.rs",
2026-06-16T09:36:12.6048298Z               "line": 23
2026-06-16T09:36:12.6048401Z             }
2026-06-16T09:36:12.6048511Z           ]
2026-06-16T09:36:12.6048613Z         },
2026-06-16T09:36:12.6048730Z         "unit": {
2026-06-16T09:36:12.6048841Z           "complete": true,
2026-06-16T09:36:12.6049021Z           "evidence": [
2026-06-16T09:36:12.6049129Z             {
2026-06-16T09:36:12.6049273Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-16T09:36:12.6049395Z               "line": 803
2026-06-16T09:36:12.6049500Z             }
2026-06-16T09:36:12.6049605Z           ]
2026-06-16T09:36:12.6049709Z         }
2026-06-16T09:36:12.6049929Z       }
2026-06-16T09:36:12.6050043Z     },
2026-06-16T09:36:12.6050144Z     {
2026-06-16T09:36:12.6050263Z       "id": "REQ-START-1",
2026-06-16T09:36:12.6050483Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-16T09:36:12.6050706Z       "requiredStages": [
2026-06-16T09:36:12.6050817Z         "impl",
2026-06-16T09:36:12.6050920Z         "unit"
2026-06-16T09:36:12.6051025Z       ],
2026-06-16T09:36:12.6051141Z       "stages": {
2026-06-16T09:36:12.6051235Z         "doc": {
2026-06-16T09:36:12.6051359Z           "complete": false,
2026-06-16T09:36:12.6051480Z           "evidence": []
2026-06-16T09:36:12.6051583Z         },
2026-06-16T09:36:12.6051688Z         "impl": {
2026-06-16T09:36:12.6051813Z           "complete": true,
2026-06-16T09:36:12.6051916Z           "evidence": [
2026-06-16T09:36:12.6052025Z             {
2026-06-16T09:36:12.6052170Z               "path": "crates/spt-store/src/seed.rs",
2026-06-16T09:36:12.6052288Z               "line": 16
2026-06-16T09:36:12.6052398Z             }
2026-06-16T09:36:12.6052498Z           ]
2026-06-16T09:36:12.6052603Z         },
2026-06-16T09:36:12.6052708Z         "int": {
2026-06-16T09:36:12.6052832Z           "complete": false,
2026-06-16T09:36:12.6052946Z           "evidence": []
2026-06-16T09:36:12.6053052Z         },
2026-06-16T09:36:12.6053156Z         "unit": {
2026-06-16T09:36:12.6053270Z           "complete": true,
2026-06-16T09:36:12.6053386Z           "evidence": [
2026-06-16T09:36:12.6053490Z             {
2026-06-16T09:36:12.6053633Z               "path": "crates/spt-store/src/seed.rs",
2026-06-16T09:36:12.6053743Z               "line": 43
2026-06-16T09:36:12.6053851Z             },
2026-06-16T09:36:12.6053957Z             {
2026-06-16T09:36:12.6054086Z               "path": "crates/spt-store/src/seed.rs",
2026-06-16T09:36:12.6054204Z               "line": 59
2026-06-16T09:36:12.6054294Z             }
2026-06-16T09:36:12.6054394Z           ]
2026-06-16T09:36:12.6054497Z         }
2026-06-16T09:36:12.6054606Z       }
2026-06-16T09:36:12.6054717Z     },
2026-06-16T09:36:12.6054822Z     {
2026-06-16T09:36:12.6054945Z       "id": "REQ-START-2",
2026-06-16T09:36:12.6055117Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-16T09:36:12.6055245Z       "requiredStages": [
2026-06-16T09:36:12.6055352Z         "impl",
2026-06-16T09:36:12.6055455Z         "unit",
2026-06-16T09:36:12.6055560Z         "int"
2026-06-16T09:36:12.6055666Z       ],
2026-06-16T09:36:12.6055780Z       "stages": {
2026-06-16T09:36:12.6055885Z         "doc": {
2026-06-16T09:36:12.6056014Z           "complete": false,
2026-06-16T09:36:12.6056128Z           "evidence": []
2026-06-16T09:36:12.6056239Z         },
2026-06-16T09:36:12.6056347Z         "impl": {
2026-06-16T09:36:12.6056466Z           "complete": true,
2026-06-16T09:36:12.6056572Z           "evidence": [
2026-06-16T09:36:12.6056676Z             {
2026-06-16T09:36:12.6056820Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6056921Z               "line": 16
2026-06-16T09:36:12.6057024Z             },
2026-06-16T09:36:12.6057123Z             {
2026-06-16T09:36:12.6057266Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6057388Z               "line": 92
2026-06-16T09:36:12.6057498Z             },
2026-06-16T09:36:12.6057598Z             {
2026-06-16T09:36:12.6057740Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6057861Z               "line": 232
2026-06-16T09:36:12.6057971Z             }
2026-06-16T09:36:12.6058074Z           ]
2026-06-16T09:36:12.6058185Z         },
2026-06-16T09:36:12.6058290Z         "int": {
2026-06-16T09:36:12.6058413Z           "complete": true,
2026-06-16T09:36:12.6058524Z           "evidence": [
2026-06-16T09:36:12.6058628Z             {
2026-06-16T09:36:12.6058796Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.6058900Z               "line": 186
2026-06-16T09:36:12.6059081Z             }
2026-06-16T09:36:12.6059182Z           ]
2026-06-16T09:36:12.6059391Z         },
2026-06-16T09:36:12.6059497Z         "unit": {
2026-06-16T09:36:12.6059619Z           "complete": true,
2026-06-16T09:36:12.6059743Z           "evidence": [
2026-06-16T09:36:12.6059847Z             {
2026-06-16T09:36:12.6060083Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6060190Z               "line": 466
2026-06-16T09:36:12.6060298Z             },
2026-06-16T09:36:12.6060403Z             {
2026-06-16T09:36:12.6060551Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6060665Z               "line": 499
2026-06-16T09:36:12.6060762Z             }
2026-06-16T09:36:12.6060871Z           ]
2026-06-16T09:36:12.6060975Z         }
2026-06-16T09:36:12.6061081Z       }
2026-06-16T09:36:12.6061185Z     },
2026-06-16T09:36:12.6061290Z     {
2026-06-16T09:36:12.6061420Z       "id": "REQ-START-3",
2026-06-16T09:36:12.6061614Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-16T09:36:12.6061739Z       "requiredStages": [
2026-06-16T09:36:12.6061838Z         "impl",
2026-06-16T09:36:12.6061958Z         "unit",
2026-06-16T09:36:12.6062059Z         "int"
2026-06-16T09:36:12.6062167Z       ],
2026-06-16T09:36:12.6062283Z       "stages": {
2026-06-16T09:36:12.6062392Z         "doc": {
2026-06-16T09:36:12.6062519Z           "complete": false,
2026-06-16T09:36:12.6062633Z           "evidence": []
2026-06-16T09:36:12.6062730Z         },
2026-06-16T09:36:12.6062834Z         "impl": {
2026-06-16T09:36:12.6062953Z           "complete": true,
2026-06-16T09:36:12.6063063Z           "evidence": [
2026-06-16T09:36:12.6063163Z             {
2026-06-16T09:36:12.6063312Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-16T09:36:12.6063411Z               "line": 23
2026-06-16T09:36:12.6063515Z             },
2026-06-16T09:36:12.6063617Z             {
2026-06-16T09:36:12.6063769Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-16T09:36:12.6063888Z               "line": 205
2026-06-16T09:36:12.6063998Z             },
2026-06-16T09:36:12.6064102Z             {
2026-06-16T09:36:12.6064247Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-16T09:36:12.6064374Z               "line": 221
2026-06-16T09:36:12.6064479Z             },
2026-06-16T09:36:12.6064590Z             {
2026-06-16T09:36:12.6064731Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6064840Z               "line": 17
2026-06-16T09:36:12.6064940Z             },
2026-06-16T09:36:12.6065043Z             {
2026-06-16T09:36:12.6065191Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6065301Z               "line": 35
2026-06-16T09:36:12.6065414Z             },
2026-06-16T09:36:12.6065520Z             {
2026-06-16T09:36:12.6065658Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6065762Z               "line": 93
2026-06-16T09:36:12.6065868Z             }
2026-06-16T09:36:12.6065978Z           ]
2026-06-16T09:36:12.6066082Z         },
2026-06-16T09:36:12.6066207Z         "int": {
2026-06-16T09:36:12.6066330Z           "complete": true,
2026-06-16T09:36:12.6066445Z           "evidence": [
2026-06-16T09:36:12.6066555Z             {
2026-06-16T09:36:12.6066697Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-16T09:36:12.6066823Z               "line": 488
2026-06-16T09:36:12.6066927Z             }
2026-06-16T09:36:12.6067026Z           ]
2026-06-16T09:36:12.6067133Z         },
2026-06-16T09:36:12.6067241Z         "unit": {
2026-06-16T09:36:12.6067355Z           "complete": true,
2026-06-16T09:36:12.6067457Z           "evidence": [
2026-06-16T09:36:12.6067575Z             {
2026-06-16T09:36:12.6067716Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-16T09:36:12.6067840Z               "line": 331
2026-06-16T09:36:12.6067948Z             },
2026-06-16T09:36:12.6068058Z             {
2026-06-16T09:36:12.6068197Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-16T09:36:12.6068305Z               "line": 352
2026-06-16T09:36:12.6068497Z             },
2026-06-16T09:36:12.6068610Z             {
2026-06-16T09:36:12.6068755Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-16T09:36:12.6068865Z               "line": 362
2026-06-16T09:36:12.6069183Z             },
2026-06-16T09:36:12.6069293Z             {
2026-06-16T09:36:12.6069432Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6069551Z               "line": 467
2026-06-16T09:36:12.6072633Z             },
2026-06-16T09:36:12.6072770Z             {
2026-06-16T09:36:12.6072934Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6073051Z               "line": 500
2026-06-16T09:36:12.6073150Z             },
2026-06-16T09:36:12.6073261Z             {
2026-06-16T09:36:12.6073408Z               "path": "crates/spt/src/api/startup.rs",
2026-06-16T09:36:12.6073528Z               "line": 508
2026-06-16T09:36:12.6073628Z             }
2026-06-16T09:36:12.6073737Z           ]
2026-06-16T09:36:12.6073848Z         }
2026-06-16T09:36:12.6073952Z       }
2026-06-16T09:36:12.6074056Z     },
2026-06-16T09:36:12.6074172Z     {
2026-06-16T09:36:12.6074290Z       "id": "REQ-START-4",
2026-06-16T09:36:12.6074463Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-16T09:36:12.6074591Z       "requiredStages": [
2026-06-16T09:36:12.6074696Z         "impl",
2026-06-16T09:36:12.6074802Z         "unit"
2026-06-16T09:36:12.6074901Z       ],
2026-06-16T09:36:12.6075010Z       "stages": {
2026-06-16T09:36:12.6075116Z         "doc": {
2026-06-16T09:36:12.6075229Z           "complete": false,
2026-06-16T09:36:12.6075352Z           "evidence": []
2026-06-16T09:36:12.6075453Z         },
2026-06-16T09:36:12.6075556Z         "impl": {
2026-06-16T09:36:12.6075665Z           "complete": true,
2026-06-16T09:36:12.6075785Z           "evidence": [
2026-06-16T09:36:12.6075890Z             {
2026-06-16T09:36:12.6076037Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.6076152Z               "line": 581
2026-06-16T09:36:12.6076256Z             }
2026-06-16T09:36:12.6076356Z           ]
2026-06-16T09:36:12.6076457Z         },
2026-06-16T09:36:12.6076566Z         "int": {
2026-06-16T09:36:12.6076691Z           "complete": false,
2026-06-16T09:36:12.6076810Z           "evidence": []
2026-06-16T09:36:12.6076914Z         },
2026-06-16T09:36:12.6077024Z         "unit": {
2026-06-16T09:36:12.6077148Z           "complete": true,
2026-06-16T09:36:12.6077248Z           "evidence": [
2026-06-16T09:36:12.6077359Z             {
2026-06-16T09:36:12.6077501Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.6077610Z               "line": 1020
2026-06-16T09:36:12.6077716Z             }
2026-06-16T09:36:12.6077825Z           ]
2026-06-16T09:36:12.6077930Z         }
2026-06-16T09:36:12.6078036Z       }
2026-06-16T09:36:12.6078144Z     },
2026-06-16T09:36:12.6078243Z     {
2026-06-16T09:36:12.6078367Z       "id": "REQ-STORE-1",
2026-06-16T09:36:12.6079405Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-16T09:36:12.6079572Z       "requiredStages": [
2026-06-16T09:36:12.6079677Z         "impl",
2026-06-16T09:36:12.6079801Z         "unit"
2026-06-16T09:36:12.6079906Z       ],
2026-06-16T09:36:12.6080025Z       "stages": {
2026-06-16T09:36:12.6080130Z         "doc": {
2026-06-16T09:36:12.6080250Z           "complete": false,
2026-06-16T09:36:12.6080368Z           "evidence": []
2026-06-16T09:36:12.6080473Z         },
2026-06-16T09:36:12.6080588Z         "impl": {
2026-06-16T09:36:12.6080706Z           "complete": true,
2026-06-16T09:36:12.6080815Z           "evidence": [
2026-06-16T09:36:12.6080920Z             {
2026-06-16T09:36:12.6081084Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6081343Z               "line": 23
2026-06-16T09:36:12.6081447Z             },
2026-06-16T09:36:12.6081548Z             {
2026-06-16T09:36:12.6081691Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6081901Z               "line": 46
2026-06-16T09:36:12.6082006Z             },
2026-06-16T09:36:12.6082114Z             {
2026-06-16T09:36:12.6082263Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6082386Z               "line": 97
2026-06-16T09:36:12.6082487Z             },
2026-06-16T09:36:12.6082596Z             {
2026-06-16T09:36:12.6082739Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6082864Z               "line": 125
2026-06-16T09:36:12.6082968Z             },
2026-06-16T09:36:12.6083069Z             {
2026-06-16T09:36:12.6083221Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6083335Z               "line": 181
2026-06-16T09:36:12.6083432Z             },
2026-06-16T09:36:12.6083541Z             {
2026-06-16T09:36:12.6083691Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6083812Z               "line": 205
2026-06-16T09:36:12.6083907Z             },
2026-06-16T09:36:12.6084025Z             {
2026-06-16T09:36:12.6084183Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6084283Z               "line": 441
2026-06-16T09:36:12.6084398Z             },
2026-06-16T09:36:12.6084507Z             {
2026-06-16T09:36:12.6084660Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.6084775Z               "line": 25
2026-06-16T09:36:12.6084884Z             },
2026-06-16T09:36:12.6084993Z             {
2026-06-16T09:36:12.6085137Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.6085246Z               "line": 120
2026-06-16T09:36:12.6085352Z             },
2026-06-16T09:36:12.6085452Z             {
2026-06-16T09:36:12.6085604Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.6085715Z               "line": 148
2026-06-16T09:36:12.6085827Z             },
2026-06-16T09:36:12.6085927Z             {
2026-06-16T09:36:12.6086084Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.6086197Z               "line": 165
2026-06-16T09:36:12.6086306Z             },
2026-06-16T09:36:12.6086417Z             {
2026-06-16T09:36:12.6086563Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.6086679Z               "line": 180
2026-06-16T09:36:12.6086783Z             },
2026-06-16T09:36:12.6086887Z             {
2026-06-16T09:36:12.6087036Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.6087150Z               "line": 198
2026-06-16T09:36:12.6087251Z             },
2026-06-16T09:36:12.6087355Z             {
2026-06-16T09:36:12.6087503Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.6087614Z               "line": 207
2026-06-16T09:36:12.6087722Z             },
2026-06-16T09:36:12.6087823Z             {
2026-06-16T09:36:12.6087967Z               "path": "crates/spt-store/src/project.rs",
2026-06-16T09:36:12.6088080Z               "line": 16
2026-06-16T09:36:12.6088185Z             },
2026-06-16T09:36:12.6088291Z             {
2026-06-16T09:36:12.6088433Z               "path": "crates/spt-store/src/project.rs",
2026-06-16T09:36:12.6088553Z               "line": 63
2026-06-16T09:36:12.6088643Z             }
2026-06-16T09:36:12.6088752Z           ]
2026-06-16T09:36:12.6088856Z         },
2026-06-16T09:36:12.6089054Z         "int": {
2026-06-16T09:36:12.6089183Z           "complete": false,
2026-06-16T09:36:12.6089303Z           "evidence": []
2026-06-16T09:36:12.6089430Z         },
2026-06-16T09:36:12.6089541Z         "unit": {
2026-06-16T09:36:12.6089660Z           "complete": true,
2026-06-16T09:36:12.6089773Z           "evidence": [
2026-06-16T09:36:12.6089875Z             {
2026-06-16T09:36:12.6090027Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6090261Z               "line": 558
2026-06-16T09:36:12.6090366Z             },
2026-06-16T09:36:12.6090471Z             {
2026-06-16T09:36:12.6090632Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6090829Z               "line": 568
2026-06-16T09:36:12.6090937Z             },
2026-06-16T09:36:12.6091047Z             {
2026-06-16T09:36:12.6091196Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6091308Z               "line": 590
2026-06-16T09:36:12.6091413Z             },
2026-06-16T09:36:12.6091518Z             {
2026-06-16T09:36:12.6091668Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6091774Z               "line": 606
2026-06-16T09:36:12.6091884Z             },
2026-06-16T09:36:12.6091987Z             {
2026-06-16T09:36:12.6092151Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-16T09:36:12.6092260Z               "line": 629
2026-06-16T09:36:12.6092364Z             },
2026-06-16T09:36:12.6092465Z             {
2026-06-16T09:36:12.6092622Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.6092733Z               "line": 472
2026-06-16T09:36:12.6092842Z             },
2026-06-16T09:36:12.6092946Z             {
2026-06-16T09:36:12.6093100Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-16T09:36:12.6093204Z               "line": 507
2026-06-16T09:36:12.6093314Z             },
2026-06-16T09:36:12.6093420Z             {
2026-06-16T09:36:12.6093571Z               "path": "crates/spt-store/src/project.rs",
2026-06-16T09:36:12.6093687Z               "line": 120
2026-06-16T09:36:12.6093795Z             },
2026-06-16T09:36:12.6093900Z             {
2026-06-16T09:36:12.6094044Z               "path": "crates/spt-store/src/project.rs",
2026-06-16T09:36:12.6094162Z               "line": 128
2026-06-16T09:36:12.6094261Z             }
2026-06-16T09:36:12.6094367Z           ]
2026-06-16T09:36:12.6094472Z         }
2026-06-16T09:36:12.6094581Z       }
2026-06-16T09:36:12.6094687Z     },
2026-06-16T09:36:12.6094778Z     {
2026-06-16T09:36:12.6094900Z       "id": "REQ-SUBNET-1",
2026-06-16T09:36:12.6095258Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-16T09:36:12.6095382Z       "requiredStages": [
2026-06-16T09:36:12.6095486Z         "impl",
2026-06-16T09:36:12.6095593Z         "unit"
2026-06-16T09:36:12.6095692Z       ],
2026-06-16T09:36:12.6095801Z       "stages": {
2026-06-16T09:36:12.6095908Z         "doc": {
2026-06-16T09:36:12.6096026Z           "complete": false,
2026-06-16T09:36:12.6096145Z           "evidence": []
2026-06-16T09:36:12.6096251Z         },
2026-06-16T09:36:12.6096359Z         "impl": {
2026-06-16T09:36:12.6096482Z           "complete": true,
2026-06-16T09:36:12.6096592Z           "evidence": [
2026-06-16T09:36:12.6096704Z             {
2026-06-16T09:36:12.6096862Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6096982Z               "line": 281
2026-06-16T09:36:12.6097076Z             },
2026-06-16T09:36:12.6097186Z             {
2026-06-16T09:36:12.6097339Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6097448Z               "line": 599
2026-06-16T09:36:12.6097554Z             },
2026-06-16T09:36:12.6097659Z             {
2026-06-16T09:36:12.6097801Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6097906Z               "line": 3085
2026-06-16T09:36:12.6098011Z             },
2026-06-16T09:36:12.6098120Z             {
2026-06-16T09:36:12.6098249Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6098359Z               "line": 3395
2026-06-16T09:36:12.6098460Z             },
2026-06-16T09:36:12.6098564Z             {
2026-06-16T09:36:12.6098688Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6098799Z               "line": 3414
2026-06-16T09:36:12.6099065Z             },
2026-06-16T09:36:12.6099162Z             {
2026-06-16T09:36:12.6099293Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6099397Z               "line": 3478
2026-06-16T09:36:12.6099507Z             },
2026-06-16T09:36:12.6099714Z             {
2026-06-16T09:36:12.6099839Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6099962Z               "line": 3520
2026-06-16T09:36:12.6100063Z             },
2026-06-16T09:36:12.6100173Z             {
2026-06-16T09:36:12.6100291Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6100402Z               "line": 3709
2026-06-16T09:36:12.6100506Z             },
2026-06-16T09:36:12.6100611Z             {
2026-06-16T09:36:12.6100741Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6100854Z               "line": 3779
2026-06-16T09:36:12.6100959Z             },
2026-06-16T09:36:12.6101065Z             {
2026-06-16T09:36:12.6101197Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6101317Z               "line": 4003
2026-06-16T09:36:12.6101427Z             },
2026-06-16T09:36:12.6101531Z             {
2026-06-16T09:36:12.6101661Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6101784Z               "line": 4640
2026-06-16T09:36:12.6101892Z             },
2026-06-16T09:36:12.6102002Z             {
2026-06-16T09:36:12.6102148Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.6102257Z               "line": 418
2026-06-16T09:36:12.6102367Z             }
2026-06-16T09:36:12.6102472Z           ]
2026-06-16T09:36:12.6102571Z         },
2026-06-16T09:36:12.6102673Z         "int": {
2026-06-16T09:36:12.6102792Z           "complete": false,
2026-06-16T09:36:12.6102910Z           "evidence": []
2026-06-16T09:36:12.6103007Z         },
2026-06-16T09:36:12.6103116Z         "unit": {
2026-06-16T09:36:12.6103230Z           "complete": true,
2026-06-16T09:36:12.6103350Z           "evidence": [
2026-06-16T09:36:12.6103455Z             {
2026-06-16T09:36:12.6103627Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6103755Z               "line": 1477
2026-06-16T09:36:12.6103869Z             },
2026-06-16T09:36:12.6103984Z             {
2026-06-16T09:36:12.6104122Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6104242Z               "line": 8790
2026-06-16T09:36:12.6104346Z             },
2026-06-16T09:36:12.6104456Z             {
2026-06-16T09:36:12.6104581Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6104684Z               "line": 8960
2026-06-16T09:36:12.6104793Z             },
2026-06-16T09:36:12.6104898Z             {
2026-06-16T09:36:12.6105032Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6105141Z               "line": 8967
2026-06-16T09:36:12.6105247Z             },
2026-06-16T09:36:12.6105356Z             {
2026-06-16T09:36:12.6105494Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6105618Z               "line": 9020
2026-06-16T09:36:12.6105732Z             },
2026-06-16T09:36:12.6105843Z             {
2026-06-16T09:36:12.6105980Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6106095Z               "line": 9037
2026-06-16T09:36:12.6106201Z             },
2026-06-16T09:36:12.6106304Z             {
2026-06-16T09:36:12.6106443Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6106558Z               "line": 9067
2026-06-16T09:36:12.6106667Z             },
2026-06-16T09:36:12.6106772Z             {
2026-06-16T09:36:12.6106897Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6107014Z               "line": 9166
2026-06-16T09:36:12.6107110Z             },
2026-06-16T09:36:12.6107214Z             {
2026-06-16T09:36:12.6107346Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6107455Z               "line": 9317
2026-06-16T09:36:12.6107561Z             }
2026-06-16T09:36:12.6107669Z           ]
2026-06-16T09:36:12.6107779Z         }
2026-06-16T09:36:12.6107885Z       }
2026-06-16T09:36:12.6108109Z     },
2026-06-16T09:36:12.6108209Z     {
2026-06-16T09:36:12.6108332Z       "id": "REQ-SUBNET-2",
2026-06-16T09:36:12.6108604Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-16T09:36:12.6108814Z       "requiredStages": [
2026-06-16T09:36:12.6108914Z         "impl",
2026-06-16T09:36:12.6109087Z         "unit",
2026-06-16T09:36:12.6109190Z         "int"
2026-06-16T09:36:12.6109296Z       ],
2026-06-16T09:36:12.6109407Z       "stages": {
2026-06-16T09:36:12.6109514Z         "doc": {
2026-06-16T09:36:12.6109640Z           "complete": true,
2026-06-16T09:36:12.6109759Z           "evidence": [
2026-06-16T09:36:12.6109862Z             {
2026-06-16T09:36:12.6110058Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-16T09:36:12.6110160Z               "line": 60
2026-06-16T09:36:12.6110269Z             }
2026-06-16T09:36:12.6110375Z           ]
2026-06-16T09:36:12.6110475Z         },
2026-06-16T09:36:12.6110603Z         "impl": {
2026-06-16T09:36:12.6110719Z           "complete": true,
2026-06-16T09:36:12.6110827Z           "evidence": [
2026-06-16T09:36:12.6110933Z             {
2026-06-16T09:36:12.6111086Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.6111199Z               "line": 837
2026-06-16T09:36:12.6111310Z             },
2026-06-16T09:36:12.6111419Z             {
2026-06-16T09:36:12.6111572Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.6111691Z               "line": 1190
2026-06-16T09:36:12.6111795Z             },
2026-06-16T09:36:12.6111906Z             {
2026-06-16T09:36:12.6112053Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.6112168Z               "line": 611
2026-06-16T09:36:12.6112274Z             },
2026-06-16T09:36:12.6112377Z             {
2026-06-16T09:36:12.6112529Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-16T09:36:12.6112643Z               "line": 743
2026-06-16T09:36:12.6112761Z             },
2026-06-16T09:36:12.6112860Z             {
2026-06-16T09:36:12.6113023Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.6113141Z               "line": 26
2026-06-16T09:36:12.6113247Z             },
2026-06-16T09:36:12.6113366Z             {
2026-06-16T09:36:12.6113514Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.6113643Z               "line": 60
2026-06-16T09:36:12.6113752Z             },
2026-06-16T09:36:12.6113858Z             {
2026-06-16T09:36:12.6114005Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.6114119Z               "line": 168
2026-06-16T09:36:12.6114229Z             },
2026-06-16T09:36:12.6114334Z             {
2026-06-16T09:36:12.6114488Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.6114606Z               "line": 295
2026-06-16T09:36:12.6114711Z             },
2026-06-16T09:36:12.6114817Z             {
2026-06-16T09:36:12.6114968Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.6115088Z               "line": 417
2026-06-16T09:36:12.6115198Z             },
2026-06-16T09:36:12.6115301Z             {
2026-06-16T09:36:12.6115459Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-16T09:36:12.6115573Z               "line": 252
2026-06-16T09:36:12.6115682Z             },
2026-06-16T09:36:12.6115783Z             {
2026-06-16T09:36:12.6115916Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6116030Z               "line": 3441
2026-06-16T09:36:12.6116141Z             },
2026-06-16T09:36:12.6116259Z             {
2026-06-16T09:36:12.6116393Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6116512Z               "line": 3942
2026-06-16T09:36:12.6116626Z             },
2026-06-16T09:36:12.6116732Z             {
2026-06-16T09:36:12.6116864Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6116984Z               "line": 4571
2026-06-16T09:36:12.6117198Z             }
2026-06-16T09:36:12.6117299Z           ]
2026-06-16T09:36:12.6117414Z         },
2026-06-16T09:36:12.6117522Z         "int": {
2026-06-16T09:36:12.6117650Z           "complete": true,
2026-06-16T09:36:12.6117751Z           "evidence": [
2026-06-16T09:36:12.6117957Z             {
2026-06-16T09:36:12.6118117Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-16T09:36:12.6118220Z               "line": 22
2026-06-16T09:36:12.6118326Z             },
2026-06-16T09:36:12.6118421Z             {
2026-06-16T09:36:12.6118573Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.6118689Z               "line": 643
2026-06-16T09:36:12.6118788Z             },
2026-06-16T09:36:12.6118902Z             {
2026-06-16T09:36:12.6119122Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.6119236Z               "line": 885
2026-06-16T09:36:12.6119332Z             }
2026-06-16T09:36:12.6119442Z           ]
2026-06-16T09:36:12.6119536Z         },
2026-06-16T09:36:12.6119647Z         "unit": {
2026-06-16T09:36:12.6119775Z           "complete": true,
2026-06-16T09:36:12.6119875Z           "evidence": [
2026-06-16T09:36:12.6119986Z             {
2026-06-16T09:36:12.6120127Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.6120253Z               "line": 586
2026-06-16T09:36:12.6120361Z             },
2026-06-16T09:36:12.6120470Z             {
2026-06-16T09:36:12.6120603Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6120716Z               "line": 8830
2026-06-16T09:36:12.6120829Z             },
2026-06-16T09:36:12.6120926Z             {
2026-06-16T09:36:12.6121059Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6121163Z               "line": 9524
2026-06-16T09:36:12.6121269Z             }
2026-06-16T09:36:12.6121369Z           ]
2026-06-16T09:36:12.6121473Z         }
2026-06-16T09:36:12.6121584Z       }
2026-06-16T09:36:12.6121688Z     },
2026-06-16T09:36:12.6121798Z     {
2026-06-16T09:36:12.6121922Z       "id": "REQ-SUBNET-3",
2026-06-16T09:36:12.6122237Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-16T09:36:12.6122355Z       "requiredStages": [
2026-06-16T09:36:12.6122457Z         "impl",
2026-06-16T09:36:12.6122571Z         "unit"
2026-06-16T09:36:12.6122675Z       ],
2026-06-16T09:36:12.6122786Z       "stages": {
2026-06-16T09:36:12.6122890Z         "doc": {
2026-06-16T09:36:12.6123018Z           "complete": false,
2026-06-16T09:36:12.6123137Z           "evidence": []
2026-06-16T09:36:12.6123235Z         },
2026-06-16T09:36:12.6123349Z         "impl": {
2026-06-16T09:36:12.6123469Z           "complete": true,
2026-06-16T09:36:12.6123583Z           "evidence": [
2026-06-16T09:36:12.6123682Z             {
2026-06-16T09:36:12.6123846Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6123954Z               "line": 152
2026-06-16T09:36:12.6124064Z             },
2026-06-16T09:36:12.6124184Z             {
2026-06-16T09:36:12.6124345Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6124465Z               "line": 299
2026-06-16T09:36:12.6124570Z             },
2026-06-16T09:36:12.6124670Z             {
2026-06-16T09:36:12.6124827Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6124937Z               "line": 437
2026-06-16T09:36:12.6125043Z             },
2026-06-16T09:36:12.6125146Z             {
2026-06-16T09:36:12.6125299Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6125419Z               "line": 480
2026-06-16T09:36:12.6125523Z             },
2026-06-16T09:36:12.6125624Z             {
2026-06-16T09:36:12.6125772Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6125880Z               "line": 125
2026-06-16T09:36:12.6125984Z             },
2026-06-16T09:36:12.6126095Z             {
2026-06-16T09:36:12.6126256Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6126500Z               "line": 253
2026-06-16T09:36:12.6126610Z             },
2026-06-16T09:36:12.6126715Z             {
2026-06-16T09:36:12.6126862Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6127073Z               "line": 264
2026-06-16T09:36:12.6127177Z             },
2026-06-16T09:36:12.6127288Z             {
2026-06-16T09:36:12.6127425Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6127539Z               "line": 285
2026-06-16T09:36:12.6127645Z             },
2026-06-16T09:36:12.6127744Z             {
2026-06-16T09:36:12.6127883Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6128002Z               "line": 589
2026-06-16T09:36:12.6128106Z             },
2026-06-16T09:36:12.6128210Z             {
2026-06-16T09:36:12.6128367Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6128470Z               "line": 648
2026-06-16T09:36:12.6128580Z             },
2026-06-16T09:36:12.6128677Z             {
2026-06-16T09:36:12.6128833Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.6129010Z               "line": 61
2026-06-16T09:36:12.6129114Z             },
2026-06-16T09:36:12.6129220Z             {
2026-06-16T09:36:12.6129367Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.6129491Z               "line": 90
2026-06-16T09:36:12.6129596Z             },
2026-06-16T09:36:12.6129706Z             {
2026-06-16T09:36:12.6129854Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.6129963Z               "line": 125
2026-06-16T09:36:12.6130067Z             },
2026-06-16T09:36:12.6130174Z             {
2026-06-16T09:36:12.6130325Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-16T09:36:12.6130440Z               "line": 9
2026-06-16T09:36:12.6130541Z             },
2026-06-16T09:36:12.6130649Z             {
2026-06-16T09:36:12.6130779Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6130908Z               "line": 3779
2026-06-16T09:36:12.6131011Z             },
2026-06-16T09:36:12.6131121Z             {
2026-06-16T09:36:12.6131267Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.6131376Z               "line": 445
2026-06-16T09:36:12.6131481Z             }
2026-06-16T09:36:12.6131586Z           ]
2026-06-16T09:36:12.6131700Z         },
2026-06-16T09:36:12.6131806Z         "int": {
2026-06-16T09:36:12.6131934Z           "complete": false,
2026-06-16T09:36:12.6132053Z           "evidence": []
2026-06-16T09:36:12.6132154Z         },
2026-06-16T09:36:12.6132272Z         "unit": {
2026-06-16T09:36:12.6132392Z           "complete": true,
2026-06-16T09:36:12.6132497Z           "evidence": [
2026-06-16T09:36:12.6132596Z             {
2026-06-16T09:36:12.6132765Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6132882Z               "line": 1304
2026-06-16T09:36:12.6132983Z             },
2026-06-16T09:36:12.6133094Z             {
2026-06-16T09:36:12.6133240Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6133356Z               "line": 1606
2026-06-16T09:36:12.6133460Z             },
2026-06-16T09:36:12.6133573Z             {
2026-06-16T09:36:12.6133730Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.6133833Z               "line": 888
2026-06-16T09:36:12.6133942Z             },
2026-06-16T09:36:12.6134048Z             {
2026-06-16T09:36:12.6134200Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6134310Z               "line": 959
2026-06-16T09:36:12.6134420Z             },
2026-06-16T09:36:12.6134529Z             {
2026-06-16T09:36:12.6134678Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6134806Z               "line": 1009
2026-06-16T09:36:12.6134915Z             },
2026-06-16T09:36:12.6135016Z             {
2026-06-16T09:36:12.6135163Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6135397Z               "line": 1068
2026-06-16T09:36:12.6135506Z             },
2026-06-16T09:36:12.6135613Z             {
2026-06-16T09:36:12.6135764Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-16T09:36:12.6135970Z               "line": 234
2026-06-16T09:36:12.6136073Z             },
2026-06-16T09:36:12.6136179Z             {
2026-06-16T09:36:12.6136336Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-16T09:36:12.6136454Z               "line": 49
2026-06-16T09:36:12.6136559Z             },
2026-06-16T09:36:12.6136670Z             {
2026-06-16T09:36:12.6136802Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6136932Z               "line": 9166
2026-06-16T09:36:12.6137036Z             },
2026-06-16T09:36:12.6137140Z             {
2026-06-16T09:36:12.6137266Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6137384Z               "line": 9272
2026-06-16T09:36:12.6137494Z             },
2026-06-16T09:36:12.6137599Z             {
2026-06-16T09:36:12.6137732Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6137848Z               "line": 9490
2026-06-16T09:36:12.6137956Z             }
2026-06-16T09:36:12.6138071Z           ]
2026-06-16T09:36:12.6138172Z         }
2026-06-16T09:36:12.6138290Z       }
2026-06-16T09:36:12.6138390Z     },
2026-06-16T09:36:12.6138492Z     {
2026-06-16T09:36:12.6138614Z       "id": "REQ-SUBNET-4",
2026-06-16T09:36:12.6138931Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-16T09:36:12.6139121Z       "requiredStages": [
2026-06-16T09:36:12.6139237Z         "impl",
2026-06-16T09:36:12.6139354Z         "unit"
2026-06-16T09:36:12.6139456Z       ],
2026-06-16T09:36:12.6139560Z       "stages": {
2026-06-16T09:36:12.6139664Z         "doc": {
2026-06-16T09:36:12.6139789Z           "complete": true,
2026-06-16T09:36:12.6139908Z           "evidence": [
2026-06-16T09:36:12.6140007Z             {
2026-06-16T09:36:12.6140208Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-16T09:36:12.6140322Z               "line": 60
2026-06-16T09:36:12.6140419Z             }
2026-06-16T09:36:12.6140523Z           ]
2026-06-16T09:36:12.6140628Z         },
2026-06-16T09:36:12.6140734Z         "impl": {
2026-06-16T09:36:12.6140852Z           "complete": true,
2026-06-16T09:36:12.6140971Z           "evidence": [
2026-06-16T09:36:12.6141077Z             {
2026-06-16T09:36:12.6141224Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6141339Z               "line": 3085
2026-06-16T09:36:12.6141444Z             },
2026-06-16T09:36:12.6141552Z             {
2026-06-16T09:36:12.6141681Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6141799Z               "line": 4538
2026-06-16T09:36:12.6141902Z             },
2026-06-16T09:36:12.6142013Z             {
2026-06-16T09:36:12.6142142Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6142265Z               "line": 4571
2026-06-16T09:36:12.6142376Z             }
2026-06-16T09:36:12.6142480Z           ]
2026-06-16T09:36:12.6142584Z         },
2026-06-16T09:36:12.6142690Z         "int": {
2026-06-16T09:36:12.6142814Z           "complete": false,
2026-06-16T09:36:12.6142937Z           "evidence": []
2026-06-16T09:36:12.6143043Z         },
2026-06-16T09:36:12.6143152Z         "unit": {
2026-06-16T09:36:12.6143267Z           "complete": true,
2026-06-16T09:36:12.6143386Z           "evidence": [
2026-06-16T09:36:12.6143485Z             {
2026-06-16T09:36:12.6143625Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6143747Z               "line": 8946
2026-06-16T09:36:12.6143843Z             },
2026-06-16T09:36:12.6143964Z             {
2026-06-16T09:36:12.6144095Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6144214Z               "line": 9020
2026-06-16T09:36:12.6144319Z             }
2026-06-16T09:36:12.6144431Z           ]
2026-06-16T09:36:12.6144666Z         }
2026-06-16T09:36:12.6144769Z       }
2026-06-16T09:36:12.6144875Z     },
2026-06-16T09:36:12.6144975Z     {
2026-06-16T09:36:12.6145103Z       "id": "REQ-SUBNET-5",
2026-06-16T09:36:12.6146401Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-16T09:36:12.6146648Z       "requiredStages": [
2026-06-16T09:36:12.6146759Z         "impl",
2026-06-16T09:36:12.6146869Z         "unit",
2026-06-16T09:36:12.6146976Z         "int"
2026-06-16T09:36:12.6147076Z       ],
2026-06-16T09:36:12.6147187Z       "stages": {
2026-06-16T09:36:12.6147291Z         "doc": {
2026-06-16T09:36:12.6147410Z           "complete": false,
2026-06-16T09:36:12.6147549Z           "evidence": []
2026-06-16T09:36:12.6147653Z         },
2026-06-16T09:36:12.6147759Z         "impl": {
2026-06-16T09:36:12.6147873Z           "complete": true,
2026-06-16T09:36:12.6147992Z           "evidence": [
2026-06-16T09:36:12.6148098Z             {
2026-06-16T09:36:12.6148278Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-16T09:36:12.6148393Z               "line": 128
2026-06-16T09:36:12.6148502Z             },
2026-06-16T09:36:12.6148602Z             {
2026-06-16T09:36:12.6148752Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-16T09:36:12.6148874Z               "line": 413
2026-06-16T09:36:12.6149052Z             },
2026-06-16T09:36:12.6149150Z             {
2026-06-16T09:36:12.6149307Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.6149416Z               "line": 74
2026-06-16T09:36:12.6149553Z             },
2026-06-16T09:36:12.6149653Z             {
2026-06-16T09:36:12.6149811Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.6149924Z               "line": 332
2026-06-16T09:36:12.6150030Z             },
2026-06-16T09:36:12.6150139Z             {
2026-06-16T09:36:12.6150287Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.6150411Z               "line": 621
2026-06-16T09:36:12.6150516Z             },
2026-06-16T09:36:12.6150621Z             {
2026-06-16T09:36:12.6150778Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-16T09:36:12.6150887Z               "line": 31
2026-06-16T09:36:12.6150994Z             },
2026-06-16T09:36:12.6151098Z             {
2026-06-16T09:36:12.6151255Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-16T09:36:12.6151370Z               "line": 50
2026-06-16T09:36:12.6151484Z             },
2026-06-16T09:36:12.6151590Z             {
2026-06-16T09:36:12.6151736Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-16T09:36:12.6151856Z               "line": 69
2026-06-16T09:36:12.6151966Z             },
2026-06-16T09:36:12.6152070Z             {
2026-06-16T09:36:12.6152222Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-16T09:36:12.6152335Z               "line": 113
2026-06-16T09:36:12.6152439Z             },
2026-06-16T09:36:12.6152544Z             {
2026-06-16T09:36:12.6152706Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-16T09:36:12.6152815Z               "line": 25
2026-06-16T09:36:12.6152926Z             },
2026-06-16T09:36:12.6153035Z             {
2026-06-16T09:36:12.6153198Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-16T09:36:12.6153321Z               "line": 34
2026-06-16T09:36:12.6153425Z             },
2026-06-16T09:36:12.6156714Z             {
2026-06-16T09:36:12.6156922Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-16T09:36:12.6157043Z               "line": 17
2026-06-16T09:36:12.6157151Z             },
2026-06-16T09:36:12.6157256Z             {
2026-06-16T09:36:12.6157401Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6157675Z               "line": 4496
2026-06-16T09:36:12.6157781Z             },
2026-06-16T09:36:12.6157879Z             {
2026-06-16T09:36:12.6158033Z               "path": "crates/spt/src/wansend.rs",
2026-06-16T09:36:12.6158242Z               "line": 419
2026-06-16T09:36:12.6158358Z             }
2026-06-16T09:36:12.6158462Z           ]
2026-06-16T09:36:12.6158566Z         },
2026-06-16T09:36:12.6158668Z         "int": {
2026-06-16T09:36:12.6158786Z           "complete": true,
2026-06-16T09:36:12.6158900Z           "evidence": [
2026-06-16T09:36:12.6159062Z             {
2026-06-16T09:36:12.6159215Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.6159335Z               "line": 817
2026-06-16T09:36:12.6159463Z             }
2026-06-16T09:36:12.6159573Z           ]
2026-06-16T09:36:12.6159669Z         },
2026-06-16T09:36:12.6159791Z         "unit": {
2026-06-16T09:36:12.6159914Z           "complete": true,
2026-06-16T09:36:12.6160028Z           "evidence": [
2026-06-16T09:36:12.6160132Z             {
2026-06-16T09:36:12.6160294Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.6160404Z               "line": 341
2026-06-16T09:36:12.6160498Z             },
2026-06-16T09:36:12.6160609Z             {
2026-06-16T09:36:12.6160766Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-16T09:36:12.6160886Z               "line": 1115
2026-06-16T09:36:12.6160991Z             },
2026-06-16T09:36:12.6161090Z             {
2026-06-16T09:36:12.6161253Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-16T09:36:12.6161357Z               "line": 151
2026-06-16T09:36:12.6161462Z             },
2026-06-16T09:36:12.6161573Z             {
2026-06-16T09:36:12.6161734Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-16T09:36:12.6161850Z               "line": 61
2026-06-16T09:36:12.6161953Z             },
2026-06-16T09:36:12.6162063Z             {
2026-06-16T09:36:12.6162212Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-16T09:36:12.6162330Z               "line": 111
2026-06-16T09:36:12.6162446Z             },
2026-06-16T09:36:12.6162546Z             {
2026-06-16T09:36:12.6162701Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-16T09:36:12.6162816Z               "line": 138
2026-06-16T09:36:12.6162909Z             },
2026-06-16T09:36:12.6163013Z             {
2026-06-16T09:36:12.6163166Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-16T09:36:12.6163280Z               "line": 148
2026-06-16T09:36:12.6163380Z             },
2026-06-16T09:36:12.6163486Z             {
2026-06-16T09:36:12.6163614Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6163729Z               "line": 8847
2026-06-16T09:36:12.6163829Z             }
2026-06-16T09:36:12.6163938Z           ]
2026-06-16T09:36:12.6164048Z         }
2026-06-16T09:36:12.6164149Z       }
2026-06-16T09:36:12.6164258Z     },
2026-06-16T09:36:12.6164358Z     {
2026-06-16T09:36:12.6164487Z       "id": "REQ-SUBNET-6",
2026-06-16T09:36:12.6165229Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-16T09:36:12.6165363Z       "requiredStages": [
2026-06-16T09:36:12.6165481Z         "impl",
2026-06-16T09:36:12.6165579Z         "unit"
2026-06-16T09:36:12.6165685Z       ],
2026-06-16T09:36:12.6165786Z       "stages": {
2026-06-16T09:36:12.6165899Z         "doc": {
2026-06-16T09:36:12.6166024Z           "complete": false,
2026-06-16T09:36:12.6166139Z           "evidence": []
2026-06-16T09:36:12.6166242Z         },
2026-06-16T09:36:12.6166353Z         "impl": {
2026-06-16T09:36:12.6166477Z           "complete": true,
2026-06-16T09:36:12.6166586Z           "evidence": [
2026-06-16T09:36:12.6166692Z             {
2026-06-16T09:36:12.6166973Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6167087Z               "line": 254
2026-06-16T09:36:12.6167201Z             },
2026-06-16T09:36:12.6167307Z             {
2026-06-16T09:36:12.6167449Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6167665Z               "line": 4154
2026-06-16T09:36:12.6167773Z             },
2026-06-16T09:36:12.6167884Z             {
2026-06-16T09:36:12.6168017Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6168135Z               "line": 4171
2026-06-16T09:36:12.6168240Z             },
2026-06-16T09:36:12.6168351Z             {
2026-06-16T09:36:12.6168478Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6168583Z               "line": 4224
2026-06-16T09:36:12.6168694Z             },
2026-06-16T09:36:12.6168797Z             {
2026-06-16T09:36:12.6168937Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6169112Z               "line": 4247
2026-06-16T09:36:12.6169213Z             }
2026-06-16T09:36:12.6169317Z           ]
2026-06-16T09:36:12.6169431Z         },
2026-06-16T09:36:12.6169537Z         "int": {
2026-06-16T09:36:12.6169656Z           "complete": false,
2026-06-16T09:36:12.6169761Z           "evidence": []
2026-06-16T09:36:12.6169867Z         },
2026-06-16T09:36:12.6169984Z         "unit": {
2026-06-16T09:36:12.6170100Z           "complete": true,
2026-06-16T09:36:12.6170220Z           "evidence": [
2026-06-16T09:36:12.6170318Z             {
2026-06-16T09:36:12.6170456Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6170565Z               "line": 8861
2026-06-16T09:36:12.6170668Z             },
2026-06-16T09:36:12.6170778Z             {
2026-06-16T09:36:12.6170898Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6171016Z               "line": 8894
2026-06-16T09:36:12.6171126Z             },
2026-06-16T09:36:12.6171226Z             {
2026-06-16T09:36:12.6171359Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6171470Z               "line": 8903
2026-06-16T09:36:12.6171579Z             }
2026-06-16T09:36:12.6171684Z           ]
2026-06-16T09:36:12.6171785Z         }
2026-06-16T09:36:12.6171889Z       }
2026-06-16T09:36:12.6171993Z     },
2026-06-16T09:36:12.6172104Z     {
2026-06-16T09:36:12.6172223Z       "id": "REQ-SUBNET-7",
2026-06-16T09:36:12.6173959Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-16T09:36:12.6174098Z       "requiredStages": [
2026-06-16T09:36:12.6174198Z         "impl",
2026-06-16T09:36:12.6174308Z         "unit"
2026-06-16T09:36:12.6174413Z       ],
2026-06-16T09:36:12.6174522Z       "stages": {
2026-06-16T09:36:12.6174627Z         "doc": {
2026-06-16T09:36:12.6174756Z           "complete": false,
2026-06-16T09:36:12.6174889Z           "evidence": []
2026-06-16T09:36:12.6174986Z         },
2026-06-16T09:36:12.6175095Z         "impl": {
2026-06-16T09:36:12.6175213Z           "complete": true,
2026-06-16T09:36:12.6175334Z           "evidence": [
2026-06-16T09:36:12.6175442Z             {
2026-06-16T09:36:12.6175601Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-16T09:36:12.6175724Z               "line": 17
2026-06-16T09:36:12.6175832Z             },
2026-06-16T09:36:12.6175947Z             {
2026-06-16T09:36:12.6176107Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.6176226Z               "line": 103
2026-06-16T09:36:12.6176336Z             },
2026-06-16T09:36:12.6176441Z             {
2026-06-16T09:36:12.6176613Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-16T09:36:12.6176846Z               "line": 312
2026-06-16T09:36:12.6176956Z             },
2026-06-16T09:36:12.6177061Z             {
2026-06-16T09:36:12.6177228Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-16T09:36:12.6177441Z               "line": 131
2026-06-16T09:36:12.6177543Z             },
2026-06-16T09:36:12.6177647Z             {
2026-06-16T09:36:12.6177809Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6177933Z               "line": 160
2026-06-16T09:36:12.6178038Z             },
2026-06-16T09:36:12.6178144Z             {
2026-06-16T09:36:12.6178305Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6178410Z               "line": 441
2026-06-16T09:36:12.6178521Z             },
2026-06-16T09:36:12.6178629Z             {
2026-06-16T09:36:12.6178785Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6178901Z               "line": 618
2026-06-16T09:36:12.6179071Z             },
2026-06-16T09:36:12.6179182Z             {
2026-06-16T09:36:12.6179324Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6179440Z               "line": 658
2026-06-16T09:36:12.6179539Z             },
2026-06-16T09:36:12.6179648Z             {
2026-06-16T09:36:12.6179797Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6179921Z               "line": 714
2026-06-16T09:36:12.6180025Z             },
2026-06-16T09:36:12.6180131Z             {
2026-06-16T09:36:12.6180292Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.6180408Z               "line": 136
2026-06-16T09:36:12.6180516Z             },
2026-06-16T09:36:12.6180616Z             {
2026-06-16T09:36:12.6180766Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6180883Z               "line": 139
2026-06-16T09:36:12.6180982Z             }
2026-06-16T09:36:12.6181092Z           ]
2026-06-16T09:36:12.6181200Z         },
2026-06-16T09:36:12.6181309Z         "int": {
2026-06-16T09:36:12.6181420Z           "complete": false,
2026-06-16T09:36:12.6181524Z           "evidence": []
2026-06-16T09:36:12.6181628Z         },
2026-06-16T09:36:12.6181730Z         "unit": {
2026-06-16T09:36:12.6181853Z           "complete": true,
2026-06-16T09:36:12.6181957Z           "evidence": [
2026-06-16T09:36:12.6182064Z             {
2026-06-16T09:36:12.6182210Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-16T09:36:12.6182321Z               "line": 136
2026-06-16T09:36:12.6182425Z             },
2026-06-16T09:36:12.6182529Z             {
2026-06-16T09:36:12.6182688Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-16T09:36:12.6182798Z               "line": 156
2026-06-16T09:36:12.6182906Z             },
2026-06-16T09:36:12.6183008Z             {
2026-06-16T09:36:12.6183164Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6183284Z               "line": 935
2026-06-16T09:36:12.6183393Z             },
2026-06-16T09:36:12.6183498Z             {
2026-06-16T09:36:12.6183647Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-16T09:36:12.6183769Z               "line": 957
2026-06-16T09:36:12.6183888Z             },
2026-06-16T09:36:12.6183993Z             {
2026-06-16T09:36:12.6184157Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-16T09:36:12.6184272Z               "line": 1419
2026-06-16T09:36:12.6184382Z             },
2026-06-16T09:36:12.6184481Z             {
2026-06-16T09:36:12.6184635Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-16T09:36:12.6184748Z               "line": 1004
2026-06-16T09:36:12.6184849Z             }
2026-06-16T09:36:12.6184954Z           ]
2026-06-16T09:36:12.6185058Z         }
2026-06-16T09:36:12.6185164Z       }
2026-06-16T09:36:12.6185269Z     },
2026-06-16T09:36:12.6185373Z     {
2026-06-16T09:36:12.6185493Z       "id": "REQ-SUBNET-8",
2026-06-16T09:36:12.6186752Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-16T09:36:12.6186996Z       "requiredStages": [
2026-06-16T09:36:12.6187105Z         "impl",
2026-06-16T09:36:12.6187211Z         "unit"
2026-06-16T09:36:12.6187320Z       ],
2026-06-16T09:36:12.6187430Z       "stages": {
2026-06-16T09:36:12.6187540Z         "doc": {
2026-06-16T09:36:12.6187659Z           "complete": false,
2026-06-16T09:36:12.6187784Z           "evidence": []
2026-06-16T09:36:12.6187888Z         },
2026-06-16T09:36:12.6188001Z         "impl": {
2026-06-16T09:36:12.6188122Z           "complete": true,
2026-06-16T09:36:12.6188236Z           "evidence": [
2026-06-16T09:36:12.6188340Z             {
2026-06-16T09:36:12.6188489Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6188608Z               "line": 3521
2026-06-16T09:36:12.6188704Z             },
2026-06-16T09:36:12.6188808Z             {
2026-06-16T09:36:12.6189019Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6189128Z               "line": 3550
2026-06-16T09:36:12.6189236Z             },
2026-06-16T09:36:12.6189341Z             {
2026-06-16T09:36:12.6189476Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6189579Z               "line": 3567
2026-06-16T09:36:12.6189685Z             },
2026-06-16T09:36:12.6189789Z             {
2026-06-16T09:36:12.6189927Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6190043Z               "line": 3590
2026-06-16T09:36:12.6190148Z             },
2026-06-16T09:36:12.6190256Z             {
2026-06-16T09:36:12.6190381Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6190505Z               "line": 4004
2026-06-16T09:36:12.6190619Z             }
2026-06-16T09:36:12.6190715Z           ]
2026-06-16T09:36:12.6190820Z         },
2026-06-16T09:36:12.6190924Z         "int": {
2026-06-16T09:36:12.6191049Z           "complete": false,
2026-06-16T09:36:12.6191153Z           "evidence": []
2026-06-16T09:36:12.6191263Z         },
2026-06-16T09:36:12.6191368Z         "unit": {
2026-06-16T09:36:12.6191490Z           "complete": true,
2026-06-16T09:36:12.6191600Z           "evidence": [
2026-06-16T09:36:12.6191695Z             {
2026-06-16T09:36:12.6191845Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6191960Z               "line": 9051
2026-06-16T09:36:12.6192070Z             },
2026-06-16T09:36:12.6192170Z             {
2026-06-16T09:36:12.6192300Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6192418Z               "line": 9067
2026-06-16T09:36:12.6192522Z             }
2026-06-16T09:36:12.6192629Z           ]
2026-06-16T09:36:12.6192733Z         }
2026-06-16T09:36:12.6192837Z       }
2026-06-16T09:36:12.6192948Z     },
2026-06-16T09:36:12.6193052Z     {
2026-06-16T09:36:12.6193171Z       "id": "REQ-TERM-1",
2026-06-16T09:36:12.6193377Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-16T09:36:12.6193501Z       "requiredStages": [
2026-06-16T09:36:12.6193611Z         "impl",
2026-06-16T09:36:12.6193724Z         "unit"
2026-06-16T09:36:12.6193831Z       ],
2026-06-16T09:36:12.6193935Z       "stages": {
2026-06-16T09:36:12.6194044Z         "doc": {
2026-06-16T09:36:12.6194164Z           "complete": false,
2026-06-16T09:36:12.6194287Z           "evidence": []
2026-06-16T09:36:12.6194391Z         },
2026-06-16T09:36:12.6194496Z         "impl": {
2026-06-16T09:36:12.6194618Z           "complete": true,
2026-06-16T09:36:12.6194731Z           "evidence": [
2026-06-16T09:36:12.6194827Z             {
2026-06-16T09:36:12.6194970Z               "path": "crates/spt-term/src/pty.rs",
2026-06-16T09:36:12.6195084Z               "line": 59
2026-06-16T09:36:12.6195185Z             },
2026-06-16T09:36:12.6195399Z             {
2026-06-16T09:36:12.6195543Z               "path": "crates/spt-term/src/pty.rs",
2026-06-16T09:36:12.6195656Z               "line": 195
2026-06-16T09:36:12.6195757Z             },
2026-06-16T09:36:12.6195952Z             {
2026-06-16T09:36:12.6196106Z               "path": "crates/spt-term/src/surface.rs",
2026-06-16T09:36:12.6196219Z               "line": 100
2026-06-16T09:36:12.6196329Z             }
2026-06-16T09:36:12.6196440Z           ]
2026-06-16T09:36:12.6196548Z         },
2026-06-16T09:36:12.6196649Z         "int": {
2026-06-16T09:36:12.6196760Z           "complete": false,
2026-06-16T09:36:12.6196877Z           "evidence": []
2026-06-16T09:36:12.6196981Z         },
2026-06-16T09:36:12.6197082Z         "unit": {
2026-06-16T09:36:12.6197203Z           "complete": true,
2026-06-16T09:36:12.6197312Z           "evidence": [
2026-06-16T09:36:12.6197413Z             {
2026-06-16T09:36:12.6197561Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-16T09:36:12.6197685Z               "line": 24
2026-06-16T09:36:12.6197790Z             },
2026-06-16T09:36:12.6197894Z             {
2026-06-16T09:36:12.6198048Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-16T09:36:12.6198157Z               "line": 56
2026-06-16T09:36:12.6198266Z             }
2026-06-16T09:36:12.6198367Z           ]
2026-06-16T09:36:12.6198472Z         }
2026-06-16T09:36:12.6198576Z       }
2026-06-16T09:36:12.6198682Z     },
2026-06-16T09:36:12.6198787Z     {
2026-06-16T09:36:12.6198910Z       "id": "REQ-TERM-2",
2026-06-16T09:36:12.6199196Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-16T09:36:12.6199317Z       "requiredStages": [
2026-06-16T09:36:12.6199458Z         "impl",
2026-06-16T09:36:12.6199565Z         "unit"
2026-06-16T09:36:12.6199674Z       ],
2026-06-16T09:36:12.6199782Z       "stages": {
2026-06-16T09:36:12.6199877Z         "doc": {
2026-06-16T09:36:12.6200007Z           "complete": false,
2026-06-16T09:36:12.6200111Z           "evidence": []
2026-06-16T09:36:12.6200230Z         },
2026-06-16T09:36:12.6200340Z         "impl": {
2026-06-16T09:36:12.6200454Z           "complete": true,
2026-06-16T09:36:12.6200574Z           "evidence": [
2026-06-16T09:36:12.6200674Z             {
2026-06-16T09:36:12.6200821Z               "path": "crates/spt-term/src/surface.rs",
2026-06-16T09:36:12.6200936Z               "line": 117
2026-06-16T09:36:12.6201046Z             },
2026-06-16T09:36:12.6201150Z             {
2026-06-16T09:36:12.6201299Z               "path": "crates/spt-term/src/surface.rs",
2026-06-16T09:36:12.6201422Z               "line": 127
2026-06-16T09:36:12.6201524Z             }
2026-06-16T09:36:12.6201632Z           ]
2026-06-16T09:36:12.6201732Z         },
2026-06-16T09:36:12.6201838Z         "int": {
2026-06-16T09:36:12.6201956Z           "complete": false,
2026-06-16T09:36:12.6202074Z           "evidence": []
2026-06-16T09:36:12.6202175Z         },
2026-06-16T09:36:12.6202278Z         "unit": {
2026-06-16T09:36:12.6202405Z           "complete": true,
2026-06-16T09:36:12.6202520Z           "evidence": [
2026-06-16T09:36:12.6202625Z             {
2026-06-16T09:36:12.6202773Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-16T09:36:12.6202888Z               "line": 46
2026-06-16T09:36:12.6202992Z             },
2026-06-16T09:36:12.6203097Z             {
2026-06-16T09:36:12.6203245Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-16T09:36:12.6203349Z               "line": 77
2026-06-16T09:36:12.6203451Z             }
2026-06-16T09:36:12.6203555Z           ]
2026-06-16T09:36:12.6203664Z         }
2026-06-16T09:36:12.6203775Z       }
2026-06-16T09:36:12.6203870Z     },
2026-06-16T09:36:12.6203979Z     {
2026-06-16T09:36:12.6204099Z       "id": "REQ-TERM-3",
2026-06-16T09:36:12.6204271Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-16T09:36:12.6204396Z       "requiredStages": [
2026-06-16T09:36:12.6204504Z         "impl",
2026-06-16T09:36:12.6204613Z         "unit"
2026-06-16T09:36:12.6204838Z       ],
2026-06-16T09:36:12.6204956Z       "stages": {
2026-06-16T09:36:12.6205056Z         "doc": {
2026-06-16T09:36:12.6205183Z           "complete": false,
2026-06-16T09:36:12.6205287Z           "evidence": []
2026-06-16T09:36:12.6205493Z         },
2026-06-16T09:36:12.6205611Z         "impl": {
2026-06-16T09:36:12.6205732Z           "complete": true,
2026-06-16T09:36:12.6205850Z           "evidence": [
2026-06-16T09:36:12.6205954Z             {
2026-06-16T09:36:12.6206127Z               "path": "crates/spt-term/src/stream.rs",
2026-06-16T09:36:12.6206240Z               "line": 71
2026-06-16T09:36:12.6206351Z             }
2026-06-16T09:36:12.6206460Z           ]
2026-06-16T09:36:12.6206555Z         },
2026-06-16T09:36:12.6206666Z         "int": {
2026-06-16T09:36:12.6206808Z           "complete": false,
2026-06-16T09:36:12.6206933Z           "evidence": []
2026-06-16T09:36:12.6207033Z         },
2026-06-16T09:36:12.6207142Z         "unit": {
2026-06-16T09:36:12.6207267Z           "complete": true,
2026-06-16T09:36:12.6207376Z           "evidence": [
2026-06-16T09:36:12.6207489Z             {
2026-06-16T09:36:12.6207632Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-16T09:36:12.6207744Z               "line": 37
2026-06-16T09:36:12.6207858Z             },
2026-06-16T09:36:12.6207959Z             {
2026-06-16T09:36:12.6208116Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-16T09:36:12.6208221Z               "line": 67
2026-06-16T09:36:12.6208327Z             }
2026-06-16T09:36:12.6208421Z           ]
2026-06-16T09:36:12.6208526Z         }
2026-06-16T09:36:12.6208631Z       }
2026-06-16T09:36:12.6208741Z     },
2026-06-16T09:36:12.6208846Z     {
2026-06-16T09:36:12.6209037Z       "id": "REQ-TERM-4",
2026-06-16T09:36:12.6209567Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-16T09:36:12.6209680Z       "requiredStages": [
2026-06-16T09:36:12.6209795Z         "impl",
2026-06-16T09:36:12.6209896Z         "unit",
2026-06-16T09:36:12.6210009Z         "int"
2026-06-16T09:36:12.6210115Z       ],
2026-06-16T09:36:12.6210225Z       "stages": {
2026-06-16T09:36:12.6210333Z         "doc": {
2026-06-16T09:36:12.6210452Z           "complete": false,
2026-06-16T09:36:12.6210562Z           "evidence": []
2026-06-16T09:36:12.6210662Z         },
2026-06-16T09:36:12.6210776Z         "impl": {
2026-06-16T09:36:12.6210900Z           "complete": true,
2026-06-16T09:36:12.6211005Z           "evidence": [
2026-06-16T09:36:12.6211105Z             {
2026-06-16T09:36:12.6211258Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6211376Z               "line": 37
2026-06-16T09:36:12.6211478Z             },
2026-06-16T09:36:12.6211586Z             {
2026-06-16T09:36:12.6211749Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6211859Z               "line": 25
2026-06-16T09:36:12.6211968Z             },
2026-06-16T09:36:12.6212069Z             {
2026-06-16T09:36:12.6212220Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6212321Z               "line": 114
2026-06-16T09:36:12.6212432Z             },
2026-06-16T09:36:12.6212540Z             {
2026-06-16T09:36:12.6212682Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6212787Z               "line": 267
2026-06-16T09:36:12.6212895Z             },
2026-06-16T09:36:12.6212999Z             {
2026-06-16T09:36:12.6213143Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6213256Z               "line": 289
2026-06-16T09:36:12.6213362Z             },
2026-06-16T09:36:12.6213462Z             {
2026-06-16T09:36:12.6213614Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6213725Z               "line": 307
2026-06-16T09:36:12.6213839Z             },
2026-06-16T09:36:12.6213948Z             {
2026-06-16T09:36:12.6214215Z               "path": "crates/spt-store/src/history.rs",
2026-06-16T09:36:12.6214326Z               "line": 33
2026-06-16T09:36:12.6214425Z             },
2026-06-16T09:36:12.6214535Z             {
2026-06-16T09:36:12.6214679Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6214902Z               "line": 52
2026-06-16T09:36:12.6215003Z             },
2026-06-16T09:36:12.6215111Z             {
2026-06-16T09:36:12.6215265Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6215370Z               "line": 180
2026-06-16T09:36:12.6215478Z             },
2026-06-16T09:36:12.6215578Z             {
2026-06-16T09:36:12.6215734Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6215852Z               "line": 190
2026-06-16T09:36:12.6215957Z             },
2026-06-16T09:36:12.6216067Z             {
2026-06-16T09:36:12.6216209Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6216329Z               "line": 250
2026-06-16T09:36:12.6216438Z             },
2026-06-16T09:36:12.6216549Z             {
2026-06-16T09:36:12.6216702Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.6216820Z               "line": 280
2026-06-16T09:36:12.6216926Z             },
2026-06-16T09:36:12.6217030Z             {
2026-06-16T09:36:12.6217173Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.6217293Z               "line": 291
2026-06-16T09:36:12.6217406Z             },
2026-06-16T09:36:12.6217508Z             {
2026-06-16T09:36:12.6217636Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6217759Z               "line": 1136
2026-06-16T09:36:12.6217861Z             }
2026-06-16T09:36:12.6217969Z           ]
2026-06-16T09:36:12.6218069Z         },
2026-06-16T09:36:12.6218173Z         "int": {
2026-06-16T09:36:12.6218296Z           "complete": true,
2026-06-16T09:36:12.6218400Z           "evidence": [
2026-06-16T09:36:12.6218510Z             {
2026-06-16T09:36:12.6218662Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-16T09:36:12.6218781Z               "line": 18
2026-06-16T09:36:12.6218882Z             }
2026-06-16T09:36:12.6219062Z           ]
2026-06-16T09:36:12.6219178Z         },
2026-06-16T09:36:12.6219287Z         "unit": {
2026-06-16T09:36:12.6219416Z           "complete": true,
2026-06-16T09:36:12.6219525Z           "evidence": [
2026-06-16T09:36:12.6219634Z             {
2026-06-16T09:36:12.6219779Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6219902Z               "line": 349
2026-06-16T09:36:12.6220007Z             },
2026-06-16T09:36:12.6220108Z             {
2026-06-16T09:36:12.6220255Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6220365Z               "line": 401
2026-06-16T09:36:12.6220475Z             },
2026-06-16T09:36:12.6220574Z             {
2026-06-16T09:36:12.6220723Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6220845Z               "line": 411
2026-06-16T09:36:12.6220950Z             },
2026-06-16T09:36:12.6221060Z             {
2026-06-16T09:36:12.6221207Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6221326Z               "line": 436
2026-06-16T09:36:12.6221437Z             },
2026-06-16T09:36:12.6221550Z             {
2026-06-16T09:36:12.6221700Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6221809Z               "line": 456
2026-06-16T09:36:12.6221913Z             },
2026-06-16T09:36:12.6222014Z             {
2026-06-16T09:36:12.6222161Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6222280Z               "line": 478
2026-06-16T09:36:12.6222381Z             },
2026-06-16T09:36:12.6222490Z             {
2026-06-16T09:36:12.6222634Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6222752Z               "line": 491
2026-06-16T09:36:12.6222857Z             },
2026-06-16T09:36:12.6223085Z             {
2026-06-16T09:36:12.6223237Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-16T09:36:12.6223347Z               "line": 502
2026-06-16T09:36:12.6223445Z             },
2026-06-16T09:36:12.6223549Z             {
2026-06-16T09:36:12.6223784Z               "path": "crates/spt-store/src/history.rs",
2026-06-16T09:36:12.6223898Z               "line": 108
2026-06-16T09:36:12.6223999Z             },
2026-06-16T09:36:12.6224108Z             {
2026-06-16T09:36:12.6224257Z               "path": "crates/spt-term/src/digest.rs",
2026-06-16T09:36:12.6224375Z               "line": 119
2026-06-16T09:36:12.6224479Z             },
2026-06-16T09:36:12.6224590Z             {
2026-06-16T09:36:12.6224728Z               "path": "crates/spt-term/src/digest.rs",
2026-06-16T09:36:12.6224852Z               "line": 127
2026-06-16T09:36:12.6224957Z             },
2026-06-16T09:36:12.6225061Z             {
2026-06-16T09:36:12.6225211Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6225329Z               "line": 474
2026-06-16T09:36:12.6225438Z             },
2026-06-16T09:36:12.6225544Z             {
2026-06-16T09:36:12.6225695Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6225820Z               "line": 501
2026-06-16T09:36:12.6225921Z             },
2026-06-16T09:36:12.6226014Z             {
2026-06-16T09:36:12.6226172Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6226298Z               "line": 520
2026-06-16T09:36:12.6226412Z             },
2026-06-16T09:36:12.6226527Z             {
2026-06-16T09:36:12.6226698Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6226813Z               "line": 535
2026-06-16T09:36:12.6226938Z             },
2026-06-16T09:36:12.6227036Z             {
2026-06-16T09:36:12.6227200Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6227313Z               "line": 561
2026-06-16T09:36:12.6227433Z             },
2026-06-16T09:36:12.6227543Z             {
2026-06-16T09:36:12.6227685Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6227810Z               "line": 581
2026-06-16T09:36:12.6227913Z             },
2026-06-16T09:36:12.6228019Z             {
2026-06-16T09:36:12.6228159Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6228282Z               "line": 591
2026-06-16T09:36:12.6228393Z             },
2026-06-16T09:36:12.6228497Z             {
2026-06-16T09:36:12.6228638Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6228747Z               "line": 683
2026-06-16T09:36:12.6228856Z             },
2026-06-16T09:36:12.6229037Z             {
2026-06-16T09:36:12.6229180Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.6229303Z               "line": 881
2026-06-16T09:36:12.6229404Z             },
2026-06-16T09:36:12.6229509Z             {
2026-06-16T09:36:12.6229637Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6229762Z               "line": 8618
2026-06-16T09:36:12.6229866Z             }
2026-06-16T09:36:12.6229966Z           ]
2026-06-16T09:36:12.6230076Z         }
2026-06-16T09:36:12.6230181Z       }
2026-06-16T09:36:12.6230285Z     },
2026-06-16T09:36:12.6230387Z     {
2026-06-16T09:36:12.6230510Z       "id": "REQ-TERM-5",
2026-06-16T09:36:12.6232120Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-16T09:36:12.6232240Z       "requiredStages": [
2026-06-16T09:36:12.6232458Z         "doc",
2026-06-16T09:36:12.6232564Z         "impl",
2026-06-16T09:36:12.6232674Z         "unit",
2026-06-16T09:36:12.6232778Z         "int"
2026-06-16T09:36:12.6232884Z       ],
2026-06-16T09:36:12.6232993Z       "stages": {
2026-06-16T09:36:12.6233189Z         "doc": {
2026-06-16T09:36:12.6233312Z           "complete": true,
2026-06-16T09:36:12.6233427Z           "evidence": [
2026-06-16T09:36:12.6233528Z             {
2026-06-16T09:36:12.6233655Z               "path": "docs/MANIFEST.md",
2026-06-16T09:36:12.6233774Z               "line": 167
2026-06-16T09:36:12.6233879Z             }
2026-06-16T09:36:12.6233982Z           ]
2026-06-16T09:36:12.6234085Z         },
2026-06-16T09:36:12.6234182Z         "impl": {
2026-06-16T09:36:12.6234292Z           "complete": true,
2026-06-16T09:36:12.6234410Z           "evidence": [
2026-06-16T09:36:12.6234516Z             {
2026-06-16T09:36:12.6234663Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6234768Z               "line": 75
2026-06-16T09:36:12.6234874Z             },
2026-06-16T09:36:12.6234977Z             {
2026-06-16T09:36:12.6235127Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6235250Z               "line": 131
2026-06-16T09:36:12.6235345Z             },
2026-06-16T09:36:12.6235456Z             {
2026-06-16T09:36:12.6235588Z               "path": "crates/spt-live/src/digest.rs",
2026-06-16T09:36:12.6235697Z               "line": 22
2026-06-16T09:36:12.6235804Z             },
2026-06-16T09:36:12.6235907Z             {
2026-06-16T09:36:12.6236052Z               "path": "crates/spt-live/src/digest.rs",
2026-06-16T09:36:12.6236161Z               "line": 81
2026-06-16T09:36:12.6236270Z             },
2026-06-16T09:36:12.6236376Z             {
2026-06-16T09:36:12.6236527Z               "path": "crates/spt-term/src/digest.rs",
2026-06-16T09:36:12.6236645Z               "line": 30
2026-06-16T09:36:12.6236756Z             },
2026-06-16T09:36:12.6236863Z             {
2026-06-16T09:36:12.6237010Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6237121Z               "line": 103
2026-06-16T09:36:12.6237225Z             },
2026-06-16T09:36:12.6237330Z             {
2026-06-16T09:36:12.6237483Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6237592Z               "line": 167
2026-06-16T09:36:12.6237693Z             },
2026-06-16T09:36:12.6237793Z             {
2026-06-16T09:36:12.6237940Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6238060Z               "line": 434
2026-06-16T09:36:12.6238160Z             },
2026-06-16T09:36:12.6238269Z             {
2026-06-16T09:36:12.6238404Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6238522Z               "line": 5262
2026-06-16T09:36:12.6238628Z             },
2026-06-16T09:36:12.6238733Z             {
2026-06-16T09:36:12.6238861Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6239048Z               "line": 5298
2026-06-16T09:36:12.6239155Z             }
2026-06-16T09:36:12.6239250Z           ]
2026-06-16T09:36:12.6239360Z         },
2026-06-16T09:36:12.6239486Z         "int": {
2026-06-16T09:36:12.6239611Z           "complete": true,
2026-06-16T09:36:12.6239726Z           "evidence": [
2026-06-16T09:36:12.6239820Z             {
2026-06-16T09:36:12.6243168Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-16T09:36:12.6243305Z               "line": 17
2026-06-16T09:36:12.6243410Z             }
2026-06-16T09:36:12.6243502Z           ]
2026-06-16T09:36:12.6243606Z         },
2026-06-16T09:36:12.6243710Z         "unit": {
2026-06-16T09:36:12.6243835Z           "complete": true,
2026-06-16T09:36:12.6243953Z           "evidence": [
2026-06-16T09:36:12.6244054Z             {
2026-06-16T09:36:12.6244225Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6244338Z               "line": 360
2026-06-16T09:36:12.6244444Z             },
2026-06-16T09:36:12.6244704Z             {
2026-06-16T09:36:12.6244866Z               "path": "crates/spt-live/src/digest.rs",
2026-06-16T09:36:12.6244979Z               "line": 153
2026-06-16T09:36:12.6245086Z             },
2026-06-16T09:36:12.6245195Z             {
2026-06-16T09:36:12.6245434Z               "path": "crates/spt-live/src/digest.rs",
2026-06-16T09:36:12.6245542Z               "line": 169
2026-06-16T09:36:12.6245643Z             },
2026-06-16T09:36:12.6245753Z             {
2026-06-16T09:36:12.6245890Z               "path": "crates/spt-live/src/digest.rs",
2026-06-16T09:36:12.6246001Z               "line": 191
2026-06-16T09:36:12.6246110Z             },
2026-06-16T09:36:12.6246205Z             {
2026-06-16T09:36:12.6246355Z               "path": "crates/spt-live/src/digest.rs",
2026-06-16T09:36:12.6246467Z               "line": 202
2026-06-16T09:36:12.6246577Z             },
2026-06-16T09:36:12.6246684Z             {
2026-06-16T09:36:12.6246820Z               "path": "crates/spt-live/src/digest.rs",
2026-06-16T09:36:12.6246932Z               "line": 213
2026-06-16T09:36:12.6247036Z             },
2026-06-16T09:36:12.6247144Z             {
2026-06-16T09:36:12.6247306Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.6247428Z               "line": 1244
2026-06-16T09:36:12.6247537Z             },
2026-06-16T09:36:12.6247633Z             {
2026-06-16T09:36:12.6247790Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.6247909Z               "line": 1287
2026-06-16T09:36:12.6248019Z             },
2026-06-16T09:36:12.6248124Z             {
2026-06-16T09:36:12.6248277Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6248391Z               "line": 606
2026-06-16T09:36:12.6248495Z             },
2026-06-16T09:36:12.6248615Z             {
2026-06-16T09:36:12.6248763Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6248883Z               "line": 634
2026-06-16T09:36:12.6249063Z             },
2026-06-16T09:36:12.6249164Z             {
2026-06-16T09:36:12.6249321Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6249430Z               "line": 646
2026-06-16T09:36:12.6249542Z             },
2026-06-16T09:36:12.6249645Z             {
2026-06-16T09:36:12.6249806Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6249920Z               "line": 669
2026-06-16T09:36:12.6250023Z             },
2026-06-16T09:36:12.6250127Z             {
2026-06-16T09:36:12.6250257Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6250375Z               "line": 7367
2026-06-16T09:36:12.6250476Z             },
2026-06-16T09:36:12.6250581Z             {
2026-06-16T09:36:12.6250718Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6250820Z               "line": 7425
2026-06-16T09:36:12.6250929Z             }
2026-06-16T09:36:12.6251033Z           ]
2026-06-16T09:36:12.6251135Z         }
2026-06-16T09:36:12.6251239Z       }
2026-06-16T09:36:12.6251343Z     },
2026-06-16T09:36:12.6251445Z     {
2026-06-16T09:36:12.6251563Z       "id": "REQ-TERM-6",
2026-06-16T09:36:12.6252764Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-16T09:36:12.6252897Z       "requiredStages": [
2026-06-16T09:36:12.6253006Z         "impl",
2026-06-16T09:36:12.6253117Z         "unit",
2026-06-16T09:36:12.6253212Z         "int"
2026-06-16T09:36:12.6253321Z       ],
2026-06-16T09:36:12.6253423Z       "stages": {
2026-06-16T09:36:12.6253527Z         "doc": {
2026-06-16T09:36:12.6253646Z           "complete": false,
2026-06-16T09:36:12.6253766Z           "evidence": []
2026-06-16T09:36:12.6253879Z         },
2026-06-16T09:36:12.6254090Z         "impl": {
2026-06-16T09:36:12.6254213Z           "complete": true,
2026-06-16T09:36:12.6254324Z           "evidence": [
2026-06-16T09:36:12.6254428Z             {
2026-06-16T09:36:12.6254590Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6254799Z               "line": 132
2026-06-16T09:36:12.6254908Z             },
2026-06-16T09:36:12.6255009Z             {
2026-06-16T09:36:12.6255164Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6255283Z               "line": 176
2026-06-16T09:36:12.6255384Z             },
2026-06-16T09:36:12.6255483Z             {
2026-06-16T09:36:12.6255631Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-16T09:36:12.6255746Z               "line": 17
2026-06-16T09:36:12.6255850Z             },
2026-06-16T09:36:12.6255956Z             {
2026-06-16T09:36:12.6256102Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-16T09:36:12.6256213Z               "line": 96
2026-06-16T09:36:12.6256327Z             },
2026-06-16T09:36:12.6256422Z             {
2026-06-16T09:36:12.6256576Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6256675Z               "line": 319
2026-06-16T09:36:12.6256785Z             },
2026-06-16T09:36:12.6256891Z             {
2026-06-16T09:36:12.6257042Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6257162Z               "line": 396
2026-06-16T09:36:12.6257263Z             }
2026-06-16T09:36:12.6257371Z           ]
2026-06-16T09:36:12.6257472Z         },
2026-06-16T09:36:12.6257578Z         "int": {
2026-06-16T09:36:12.6257695Z           "complete": true,
2026-06-16T09:36:12.6257814Z           "evidence": [
2026-06-16T09:36:12.6257918Z             {
2026-06-16T09:36:12.6258097Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-16T09:36:12.6258212Z               "line": 18
2026-06-16T09:36:12.6258321Z             }
2026-06-16T09:36:12.6258421Z           ]
2026-06-16T09:36:12.6258527Z         },
2026-06-16T09:36:12.6258632Z         "unit": {
2026-06-16T09:36:12.6258755Z           "complete": true,
2026-06-16T09:36:12.6258866Z           "evidence": [
2026-06-16T09:36:12.6259041Z             {
2026-06-16T09:36:12.6259185Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-16T09:36:12.6259308Z               "line": 126
2026-06-16T09:36:12.6259419Z             },
2026-06-16T09:36:12.6259524Z             {
2026-06-16T09:36:12.6259671Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-16T09:36:12.6259787Z               "line": 141
2026-06-16T09:36:12.6259895Z             },
2026-06-16T09:36:12.6259995Z             {
2026-06-16T09:36:12.6260139Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-16T09:36:12.6260248Z               "line": 157
2026-06-16T09:36:12.6260361Z             },
2026-06-16T09:36:12.6260466Z             {
2026-06-16T09:36:12.6260602Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-16T09:36:12.6260721Z               "line": 175
2026-06-16T09:36:12.6260822Z             },
2026-06-16T09:36:12.6260926Z             {
2026-06-16T09:36:12.6261075Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6261180Z               "line": 738
2026-06-16T09:36:12.6261293Z             },
2026-06-16T09:36:12.6261394Z             {
2026-06-16T09:36:12.6261542Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6261647Z               "line": 759
2026-06-16T09:36:12.6261752Z             },
2026-06-16T09:36:12.6261857Z             {
2026-06-16T09:36:12.6262010Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-16T09:36:12.6262123Z               "line": 722
2026-06-16T09:36:12.6262223Z             }
2026-06-16T09:36:12.6262330Z           ]
2026-06-16T09:36:12.6262433Z         }
2026-06-16T09:36:12.6262538Z       }
2026-06-16T09:36:12.6262640Z     },
2026-06-16T09:36:12.6262743Z     {
2026-06-16T09:36:12.6262863Z       "id": "REQ-TERM-7",
2026-06-16T09:36:12.6264211Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-16T09:36:12.6264426Z       "requiredStages": [
2026-06-16T09:36:12.6264530Z         "impl",
2026-06-16T09:36:12.6264641Z         "unit",
2026-06-16T09:36:12.6264745Z         "int"
2026-06-16T09:36:12.6264850Z       ],
2026-06-16T09:36:12.6264965Z       "stages": {
2026-06-16T09:36:12.6265069Z         "doc": {
2026-06-16T09:36:12.6265194Z           "complete": false,
2026-06-16T09:36:12.6265312Z           "evidence": []
2026-06-16T09:36:12.6265411Z         },
2026-06-16T09:36:12.6265521Z         "impl": {
2026-06-16T09:36:12.6265635Z           "complete": true,
2026-06-16T09:36:12.6265752Z           "evidence": [
2026-06-16T09:36:12.6265852Z             {
2026-06-16T09:36:12.6266014Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6266134Z               "line": 133
2026-06-16T09:36:12.6266239Z             },
2026-06-16T09:36:12.6266348Z             {
2026-06-16T09:36:12.6266497Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6266616Z               "line": 311
2026-06-16T09:36:12.6266720Z             },
2026-06-16T09:36:12.6266831Z             {
2026-06-16T09:36:12.6266978Z               "path": "crates/spt-live/src/inject.rs",
2026-06-16T09:36:12.6267087Z               "line": 15
2026-06-16T09:36:12.6267189Z             },
2026-06-16T09:36:12.6267293Z             {
2026-06-16T09:36:12.6267446Z               "path": "crates/spt-live/src/inject.rs",
2026-06-16T09:36:12.6267550Z               "line": 32
2026-06-16T09:36:12.6267650Z             },
2026-06-16T09:36:12.6267751Z             {
2026-06-16T09:36:12.6267897Z               "path": "crates/spt-store/src/history.rs",
2026-06-16T09:36:12.6268013Z               "line": 49
2026-06-16T09:36:12.6268114Z             },
2026-06-16T09:36:12.6268222Z             {
2026-06-16T09:36:12.6268379Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6268497Z               "line": 286
2026-06-16T09:36:12.6268605Z             },
2026-06-16T09:36:12.6268706Z             {
2026-06-16T09:36:12.6268854Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6269030Z               "line": 320
2026-06-16T09:36:12.6269130Z             }
2026-06-16T09:36:12.6269234Z           ]
2026-06-16T09:36:12.6269345Z         },
2026-06-16T09:36:12.6269449Z         "int": {
2026-06-16T09:36:12.6269563Z           "complete": true,
2026-06-16T09:36:12.6269674Z           "evidence": [
2026-06-16T09:36:12.6269773Z             {
2026-06-16T09:36:12.6269959Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-16T09:36:12.6270074Z               "line": 19
2026-06-16T09:36:12.6270169Z             }
2026-06-16T09:36:12.6270269Z           ]
2026-06-16T09:36:12.6270375Z         },
2026-06-16T09:36:12.6270483Z         "unit": {
2026-06-16T09:36:12.6270609Z           "complete": true,
2026-06-16T09:36:12.6270728Z           "evidence": [
2026-06-16T09:36:12.6270822Z             {
2026-06-16T09:36:12.6270974Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6271087Z               "line": 440
2026-06-16T09:36:12.6271181Z             },
2026-06-16T09:36:12.6271291Z             {
2026-06-16T09:36:12.6271434Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-16T09:36:12.6271548Z               "line": 551
2026-06-16T09:36:12.6271664Z             },
2026-06-16T09:36:12.6271768Z             {
2026-06-16T09:36:12.6271911Z               "path": "crates/spt-live/src/inject.rs",
2026-06-16T09:36:12.6272011Z               "line": 58
2026-06-16T09:36:12.6272116Z             },
2026-06-16T09:36:12.6272326Z             {
2026-06-16T09:36:12.6272474Z               "path": "crates/spt-live/src/inject.rs",
2026-06-16T09:36:12.6272589Z               "line": 77
2026-06-16T09:36:12.6272688Z             },
2026-06-16T09:36:12.6272890Z             {
2026-06-16T09:36:12.6273026Z               "path": "crates/spt-live/src/inject.rs",
2026-06-16T09:36:12.6273146Z               "line": 87
2026-06-16T09:36:12.6273252Z             },
2026-06-16T09:36:12.6273355Z             {
2026-06-16T09:36:12.6273495Z               "path": "crates/spt-store/src/history.rs",
2026-06-16T09:36:12.6273609Z               "line": 94
2026-06-16T09:36:12.6273717Z             },
2026-06-16T09:36:12.6273817Z             {
2026-06-16T09:36:12.6273971Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6274079Z               "line": 691
2026-06-16T09:36:12.6274185Z             },
2026-06-16T09:36:12.6274290Z             {
2026-06-16T09:36:12.6274437Z               "path": "crates/spt-term/src/projection.rs",
2026-06-16T09:36:12.6274548Z               "line": 716
2026-06-16T09:36:12.6274652Z             }
2026-06-16T09:36:12.6274752Z           ]
2026-06-16T09:36:12.6274857Z         }
2026-06-16T09:36:12.6274962Z       }
2026-06-16T09:36:12.6275071Z     },
2026-06-16T09:36:12.6275172Z     {
2026-06-16T09:36:12.6275296Z       "id": "REQ-UPD-1",
2026-06-16T09:36:12.6275445Z       "title": "Peer-propagated update over P2P",
2026-06-16T09:36:12.6275572Z       "requiredStages": [
2026-06-16T09:36:12.6275672Z         "impl",
2026-06-16T09:36:12.6275778Z         "unit",
2026-06-16T09:36:12.6275882Z         "int"
2026-06-16T09:36:12.6275986Z       ],
2026-06-16T09:36:12.6276091Z       "stages": {
2026-06-16T09:36:12.6276199Z         "doc": {
2026-06-16T09:36:12.6276322Z           "complete": false,
2026-06-16T09:36:12.6276436Z           "evidence": []
2026-06-16T09:36:12.6276542Z         },
2026-06-16T09:36:12.6276655Z         "impl": {
2026-06-16T09:36:12.6276771Z           "complete": true,
2026-06-16T09:36:12.6276895Z           "evidence": [
2026-06-16T09:36:12.6276994Z             {
2026-06-16T09:36:12.6277152Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6277256Z               "line": 28
2026-06-16T09:36:12.6277367Z             },
2026-06-16T09:36:12.6277476Z             {
2026-06-16T09:36:12.6277619Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6277734Z               "line": 103
2026-06-16T09:36:12.6277834Z             },
2026-06-16T09:36:12.6277933Z             {
2026-06-16T09:36:12.6278082Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6278205Z               "line": 342
2026-06-16T09:36:12.6278307Z             },
2026-06-16T09:36:12.6278411Z             {
2026-06-16T09:36:12.6278558Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6278664Z               "line": 22
2026-06-16T09:36:12.6278782Z             },
2026-06-16T09:36:12.6278877Z             {
2026-06-16T09:36:12.6279085Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6279203Z               "line": 207
2026-06-16T09:36:12.6279308Z             },
2026-06-16T09:36:12.6279433Z             {
2026-06-16T09:36:12.6279565Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6279690Z               "line": 283
2026-06-16T09:36:12.6279785Z             },
2026-06-16T09:36:12.6279885Z             {
2026-06-16T09:36:12.6280038Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6280152Z               "line": 340
2026-06-16T09:36:12.6280258Z             },
2026-06-16T09:36:12.6280352Z             {
2026-06-16T09:36:12.6280505Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-16T09:36:12.6280611Z               "line": 37
2026-06-16T09:36:12.6280719Z             }
2026-06-16T09:36:12.6280829Z           ]
2026-06-16T09:36:12.6280936Z         },
2026-06-16T09:36:12.6281043Z         "int": {
2026-06-16T09:36:12.6281159Z           "complete": true,
2026-06-16T09:36:12.6281386Z           "evidence": [
2026-06-16T09:36:12.6281491Z             {
2026-06-16T09:36:12.6281647Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-16T09:36:12.6281756Z               "line": 207
2026-06-16T09:36:12.6281948Z             },
2026-06-16T09:36:12.6282051Z             {
2026-06-16T09:36:12.6282200Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-16T09:36:12.6282309Z               "line": 1080
2026-06-16T09:36:12.6282413Z             }
2026-06-16T09:36:12.6282524Z           ]
2026-06-16T09:36:12.6282633Z         },
2026-06-16T09:36:12.6282742Z         "unit": {
2026-06-16T09:36:12.6282863Z           "complete": true,
2026-06-16T09:36:12.6282972Z           "evidence": [
2026-06-16T09:36:12.6283067Z             {
2026-06-16T09:36:12.6283215Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6283315Z               "line": 490
2026-06-16T09:36:12.6283416Z             },
2026-06-16T09:36:12.6283525Z             {
2026-06-16T09:36:12.6283668Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6283784Z               "line": 616
2026-06-16T09:36:12.6283887Z             },
2026-06-16T09:36:12.6284002Z             {
2026-06-16T09:36:12.6284155Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-16T09:36:12.6284278Z               "line": 277
2026-06-16T09:36:12.6284382Z             },
2026-06-16T09:36:12.6284488Z             {
2026-06-16T09:36:12.6284634Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-16T09:36:12.6284755Z               "line": 124
2026-06-16T09:36:12.6284860Z             },
2026-06-16T09:36:12.6284968Z             {
2026-06-16T09:36:12.6285117Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-16T09:36:12.6285231Z               "line": 200
2026-06-16T09:36:12.6285331Z             }
2026-06-16T09:36:12.6285441Z           ]
2026-06-16T09:36:12.6285546Z         }
2026-06-16T09:36:12.6285651Z       }
2026-06-16T09:36:12.6285756Z     },
2026-06-16T09:36:12.6285865Z     {
2026-06-16T09:36:12.6285980Z       "id": "REQ-UPD-2",
2026-06-16T09:36:12.6286170Z       "title": "All binaries signature-verified before handoff",
2026-06-16T09:36:12.6286285Z       "requiredStages": [
2026-06-16T09:36:12.6286400Z         "impl",
2026-06-16T09:36:12.6286508Z         "unit"
2026-06-16T09:36:12.6286612Z       ],
2026-06-16T09:36:12.6286717Z       "stages": {
2026-06-16T09:36:12.6286816Z         "doc": {
2026-06-16T09:36:12.6286939Z           "complete": false,
2026-06-16T09:36:12.6287045Z           "evidence": []
2026-06-16T09:36:12.6287145Z         },
2026-06-16T09:36:12.6287254Z         "impl": {
2026-06-16T09:36:12.6287374Z           "complete": true,
2026-06-16T09:36:12.6287487Z           "evidence": [
2026-06-16T09:36:12.6287593Z             {
2026-06-16T09:36:12.6287750Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6287859Z               "line": 343
2026-06-16T09:36:12.6287960Z             },
2026-06-16T09:36:12.6288065Z             {
2026-06-16T09:36:12.6288212Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6288332Z               "line": 476
2026-06-16T09:36:12.6288437Z             },
2026-06-16T09:36:12.6288552Z             {
2026-06-16T09:36:12.6288694Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6288813Z               "line": 29
2026-06-16T09:36:12.6288929Z             },
2026-06-16T09:36:12.6289123Z             {
2026-06-16T09:36:12.6289277Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6289379Z               "line": 271
2026-06-16T09:36:12.6289484Z             },
2026-06-16T09:36:12.6289580Z             {
2026-06-16T09:36:12.6289734Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6289859Z               "line": 288
2026-06-16T09:36:12.6289955Z             },
2026-06-16T09:36:12.6290068Z             {
2026-06-16T09:36:12.6290213Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6290460Z               "line": 408
2026-06-16T09:36:12.6290565Z             },
2026-06-16T09:36:12.6290669Z             {
2026-06-16T09:36:12.6290818Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6291041Z               "line": 540
2026-06-16T09:36:12.6291157Z             },
2026-06-16T09:36:12.6291260Z             {
2026-06-16T09:36:12.6291404Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6291515Z               "line": 155
2026-06-16T09:36:12.6291623Z             }
2026-06-16T09:36:12.6291729Z           ]
2026-06-16T09:36:12.6291829Z         },
2026-06-16T09:36:12.6291937Z         "int": {
2026-06-16T09:36:12.6292051Z           "complete": false,
2026-06-16T09:36:12.6292170Z           "evidence": []
2026-06-16T09:36:12.6292278Z         },
2026-06-16T09:36:12.6292388Z         "unit": {
2026-06-16T09:36:12.6292508Z           "complete": true,
2026-06-16T09:36:12.6292611Z           "evidence": [
2026-06-16T09:36:12.6292726Z             {
2026-06-16T09:36:12.6292870Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6292997Z               "line": 697
2026-06-16T09:36:12.6293094Z             },
2026-06-16T09:36:12.6293203Z             {
2026-06-16T09:36:12.6293351Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6293470Z               "line": 758
2026-06-16T09:36:12.6293589Z             },
2026-06-16T09:36:12.6293690Z             {
2026-06-16T09:36:12.6293842Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6293961Z               "line": 772
2026-06-16T09:36:12.6294071Z             },
2026-06-16T09:36:12.6294185Z             {
2026-06-16T09:36:12.6294329Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6294451Z               "line": 788
2026-06-16T09:36:12.6294557Z             },
2026-06-16T09:36:12.6294673Z             {
2026-06-16T09:36:12.6294818Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6294928Z               "line": 879
2026-06-16T09:36:12.6295029Z             },
2026-06-16T09:36:12.6295128Z             {
2026-06-16T09:36:12.6295276Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6295396Z               "line": 414
2026-06-16T09:36:12.6295510Z             },
2026-06-16T09:36:12.6295616Z             {
2026-06-16T09:36:12.6295758Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6295877Z               "line": 427
2026-06-16T09:36:12.6295982Z             },
2026-06-16T09:36:12.6296092Z             {
2026-06-16T09:36:12.6296250Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-16T09:36:12.6296368Z               "line": 410
2026-06-16T09:36:12.6296473Z             }
2026-06-16T09:36:12.6296574Z           ]
2026-06-16T09:36:12.6296683Z         }
2026-06-16T09:36:12.6296783Z       }
2026-06-16T09:36:12.6296879Z     },
2026-06-16T09:36:12.6296969Z     {
2026-06-16T09:36:12.6297091Z       "id": "REQ-UPD-3",
2026-06-16T09:36:12.6297305Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-16T09:36:12.6297418Z       "requiredStages": [
2026-06-16T09:36:12.6297528Z         "impl",
2026-06-16T09:36:12.6297629Z         "unit",
2026-06-16T09:36:12.6297742Z         "int"
2026-06-16T09:36:12.6297843Z       ],
2026-06-16T09:36:12.6297953Z       "stages": {
2026-06-16T09:36:12.6298066Z         "doc": {
2026-06-16T09:36:12.6298187Z           "complete": false,
2026-06-16T09:36:12.6298301Z           "evidence": []
2026-06-16T09:36:12.6298405Z         },
2026-06-16T09:36:12.6298520Z         "impl": {
2026-06-16T09:36:12.6298635Z           "complete": true,
2026-06-16T09:36:12.6298749Z           "evidence": [
2026-06-16T09:36:12.6298854Z             {
2026-06-16T09:36:12.6299078Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6299202Z               "line": 40
2026-06-16T09:36:12.6299307Z             },
2026-06-16T09:36:12.6299407Z             {
2026-06-16T09:36:12.6299683Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6299799Z               "line": 87
2026-06-16T09:36:12.6299912Z             },
2026-06-16T09:36:12.6300016Z             {
2026-06-16T09:36:12.6300168Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-16T09:36:12.6300371Z               "line": 993
2026-06-16T09:36:12.6300482Z             },
2026-06-16T09:36:12.6300591Z             {
2026-06-16T09:36:12.6300739Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-16T09:36:12.6300859Z               "line": 1085
2026-06-16T09:36:12.6300957Z             },
2026-06-16T09:36:12.6301073Z             {
2026-06-16T09:36:12.6301220Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6301334Z               "line": 26
2026-06-16T09:36:12.6301440Z             },
2026-06-16T09:36:12.6301549Z             {
2026-06-16T09:36:12.6301698Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6301811Z               "line": 114
2026-06-16T09:36:12.6301916Z             },
2026-06-16T09:36:12.6302017Z             {
2026-06-16T09:36:12.6302154Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6302260Z               "line": 246
2026-06-16T09:36:12.6302366Z             },
2026-06-16T09:36:12.6302469Z             {
2026-06-16T09:36:12.6302606Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6302730Z               "line": 2224
2026-06-16T09:36:12.6302833Z             }
2026-06-16T09:36:12.6302938Z           ]
2026-06-16T09:36:12.6303039Z         },
2026-06-16T09:36:12.6303143Z         "int": {
2026-06-16T09:36:12.6303272Z           "complete": true,
2026-06-16T09:36:12.6303377Z           "evidence": [
2026-06-16T09:36:12.6303486Z             {
2026-06-16T09:36:12.6303640Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-16T09:36:12.6303759Z               "line": 58
2026-06-16T09:36:12.6303853Z             }
2026-06-16T09:36:12.6303955Z           ]
2026-06-16T09:36:12.6304063Z         },
2026-06-16T09:36:12.6304173Z         "unit": {
2026-06-16T09:36:12.6304294Z           "complete": true,
2026-06-16T09:36:12.6304407Z           "evidence": [
2026-06-16T09:36:12.6304521Z             {
2026-06-16T09:36:12.6304678Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6304793Z               "line": 532
2026-06-16T09:36:12.6304904Z             },
2026-06-16T09:36:12.6305012Z             {
2026-06-16T09:36:12.6305166Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6305280Z               "line": 583
2026-06-16T09:36:12.6305388Z             },
2026-06-16T09:36:12.6305488Z             {
2026-06-16T09:36:12.6305632Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6305750Z               "line": 651
2026-06-16T09:36:12.6305855Z             },
2026-06-16T09:36:12.6305961Z             {
2026-06-16T09:36:12.6306112Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-16T09:36:12.6306232Z               "line": 1076
2026-06-16T09:36:12.6306351Z             },
2026-06-16T09:36:12.6306447Z             {
2026-06-16T09:36:12.6306599Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6306723Z               "line": 271
2026-06-16T09:36:12.6306834Z             },
2026-06-16T09:36:12.6306938Z             {
2026-06-16T09:36:12.6307091Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6307205Z               "line": 295
2026-06-16T09:36:12.6307309Z             },
2026-06-16T09:36:12.6307415Z             {
2026-06-16T09:36:12.6307557Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6307671Z               "line": 316
2026-06-16T09:36:12.6307776Z             },
2026-06-16T09:36:12.6307879Z             {
2026-06-16T09:36:12.6308030Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6308136Z               "line": 332
2026-06-16T09:36:12.6308246Z             }
2026-06-16T09:36:12.6308451Z           ]
2026-06-16T09:36:12.6308555Z         }
2026-06-16T09:36:12.6308664Z       }
2026-06-16T09:36:12.6308766Z     },
2026-06-16T09:36:12.6308870Z     {
2026-06-16T09:36:12.6309062Z       "id": "REQ-UPD-4",
2026-06-16T09:36:12.6309280Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-16T09:36:12.6309566Z       "requiredStages": [
2026-06-16T09:36:12.6309662Z         "impl",
2026-06-16T09:36:12.6309762Z         "unit"
2026-06-16T09:36:12.6309867Z       ],
2026-06-16T09:36:12.6309987Z       "stages": {
2026-06-16T09:36:12.6310087Z         "doc": {
2026-06-16T09:36:12.6310215Z           "complete": false,
2026-06-16T09:36:12.6310316Z           "evidence": []
2026-06-16T09:36:12.6310420Z         },
2026-06-16T09:36:12.6310519Z         "impl": {
2026-06-16T09:36:12.6310643Z           "complete": true,
2026-06-16T09:36:12.6310756Z           "evidence": [
2026-06-16T09:36:12.6310859Z             {
2026-06-16T09:36:12.6311018Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6311132Z               "line": 41
2026-06-16T09:36:12.6311237Z             },
2026-06-16T09:36:12.6311342Z             {
2026-06-16T09:36:12.6311494Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6311610Z               "line": 88
2026-06-16T09:36:12.6311709Z             },
2026-06-16T09:36:12.6311818Z             {
2026-06-16T09:36:12.6311962Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-16T09:36:12.6312081Z               "line": 23
2026-06-16T09:36:12.6312186Z             },
2026-06-16T09:36:12.6312296Z             {
2026-06-16T09:36:12.6312448Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-16T09:36:12.6312549Z               "line": 56
2026-06-16T09:36:12.6312658Z             },
2026-06-16T09:36:12.6312768Z             {
2026-06-16T09:36:12.6312916Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-16T09:36:12.6313025Z               "line": 77
2026-06-16T09:36:12.6313143Z             },
2026-06-16T09:36:12.6313252Z             {
2026-06-16T09:36:12.6313398Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-16T09:36:12.6313513Z               "line": 186
2026-06-16T09:36:12.6313623Z             },
2026-06-16T09:36:12.6313731Z             {
2026-06-16T09:36:12.6313881Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-16T09:36:12.6313981Z               "line": 108
2026-06-16T09:36:12.6314089Z             },
2026-06-16T09:36:12.6314195Z             {
2026-06-16T09:36:12.6314342Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.6314452Z               "line": 212
2026-06-16T09:36:12.6314572Z             },
2026-06-16T09:36:12.6314671Z             {
2026-06-16T09:36:12.6314815Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6314938Z               "line": 2223
2026-06-16T09:36:12.6315048Z             }
2026-06-16T09:36:12.6315149Z           ]
2026-06-16T09:36:12.6315253Z         },
2026-06-16T09:36:12.6315367Z         "int": {
2026-06-16T09:36:12.6315483Z           "complete": false,
2026-06-16T09:36:12.6315605Z           "evidence": []
2026-06-16T09:36:12.6315707Z         },
2026-06-16T09:36:12.6315812Z         "unit": {
2026-06-16T09:36:12.6315938Z           "complete": true,
2026-06-16T09:36:12.6316053Z           "evidence": [
2026-06-16T09:36:12.6316188Z             {
2026-06-16T09:36:12.6316343Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6316459Z               "line": 579
2026-06-16T09:36:12.6316573Z             },
2026-06-16T09:36:12.6316677Z             {
2026-06-16T09:36:12.6316840Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6316944Z               "line": 704
2026-06-16T09:36:12.6317045Z             },
2026-06-16T09:36:12.6317155Z             {
2026-06-16T09:36:12.6317302Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-16T09:36:12.6317423Z               "line": 384
2026-06-16T09:36:12.6317522Z             },
2026-06-16T09:36:12.6317733Z             {
2026-06-16T09:36:12.6317879Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-16T09:36:12.6317999Z               "line": 102
2026-06-16T09:36:12.6318117Z             },
2026-06-16T09:36:12.6318217Z             {
2026-06-16T09:36:12.6318435Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-16T09:36:12.6318543Z               "line": 123
2026-06-16T09:36:12.6318648Z             },
2026-06-16T09:36:12.6318754Z             {
2026-06-16T09:36:12.6318900Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-16T09:36:12.6319088Z               "line": 142
2026-06-16T09:36:12.6319187Z             },
2026-06-16T09:36:12.6319288Z             {
2026-06-16T09:36:12.6319440Z               "path": "crates/spt-store/src/info.rs",
2026-06-16T09:36:12.6319574Z               "line": 456
2026-06-16T09:36:12.6319674Z             },
2026-06-16T09:36:12.6319783Z             {
2026-06-16T09:36:12.6319932Z               "path": "crates/spt-store/src/perch.rs",
2026-06-16T09:36:12.6320050Z               "line": 566
2026-06-16T09:36:12.6320155Z             },
2026-06-16T09:36:12.6320261Z             {
2026-06-16T09:36:12.6320408Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6320533Z               "line": 7120
2026-06-16T09:36:12.6320637Z             }
2026-06-16T09:36:12.6320746Z           ]
2026-06-16T09:36:12.6320852Z         }
2026-06-16T09:36:12.6320962Z       }
2026-06-16T09:36:12.6321065Z     },
2026-06-16T09:36:12.6321174Z     {
2026-06-16T09:36:12.6321288Z       "id": "REQ-UPD-5",
2026-06-16T09:36:12.6321477Z       "title": "spt-core ripple-updates registered adapters",
2026-06-16T09:36:12.6321597Z       "requiredStages": [
2026-06-16T09:36:12.6321702Z         "impl",
2026-06-16T09:36:12.6321811Z         "unit"
2026-06-16T09:36:12.6321917Z       ],
2026-06-16T09:36:12.6322035Z       "stages": {
2026-06-16T09:36:12.6322140Z         "doc": {
2026-06-16T09:36:12.6322269Z           "complete": false,
2026-06-16T09:36:12.6322378Z           "evidence": []
2026-06-16T09:36:12.6322484Z         },
2026-06-16T09:36:12.6322598Z         "impl": {
2026-06-16T09:36:12.6322707Z           "complete": true,
2026-06-16T09:36:12.6322823Z           "evidence": [
2026-06-16T09:36:12.6322927Z             {
2026-06-16T09:36:12.6323109Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.6323228Z               "line": 27
2026-06-16T09:36:12.6323323Z             },
2026-06-16T09:36:12.6323429Z             {
2026-06-16T09:36:12.6326613Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.6326767Z               "line": 82
2026-06-16T09:36:12.6326875Z             },
2026-06-16T09:36:12.6326985Z             {
2026-06-16T09:36:12.6327166Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.6327281Z               "line": 134
2026-06-16T09:36:12.6327395Z             },
2026-06-16T09:36:12.6327499Z             {
2026-06-16T09:36:12.6327658Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6327786Z               "line": 492
2026-06-16T09:36:12.6327891Z             },
2026-06-16T09:36:12.6327997Z             {
2026-06-16T09:36:12.6328139Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6328264Z               "line": 528
2026-06-16T09:36:12.6328367Z             }
2026-06-16T09:36:12.6328487Z           ]
2026-06-16T09:36:12.6328593Z         },
2026-06-16T09:36:12.6328692Z         "int": {
2026-06-16T09:36:12.6328819Z           "complete": false,
2026-06-16T09:36:12.6328930Z           "evidence": []
2026-06-16T09:36:12.6329132Z         },
2026-06-16T09:36:12.6329237Z         "unit": {
2026-06-16T09:36:12.6329361Z           "complete": true,
2026-06-16T09:36:12.6329470Z           "evidence": [
2026-06-16T09:36:12.6329572Z             {
2026-06-16T09:36:12.6329742Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.6329853Z               "line": 232
2026-06-16T09:36:12.6329957Z             },
2026-06-16T09:36:12.6330229Z             {
2026-06-16T09:36:12.6330391Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.6330502Z               "line": 246
2026-06-16T09:36:12.6330605Z             },
2026-06-16T09:36:12.6330797Z             {
2026-06-16T09:36:12.6330948Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.6331054Z               "line": 260
2026-06-16T09:36:12.6331156Z             },
2026-06-16T09:36:12.6331258Z             {
2026-06-16T09:36:12.6331418Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.6331536Z               "line": 274
2026-06-16T09:36:12.6331640Z             },
2026-06-16T09:36:12.6331744Z             {
2026-06-16T09:36:12.6331895Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-16T09:36:12.6331999Z               "line": 308
2026-06-16T09:36:12.6332109Z             },
2026-06-16T09:36:12.6332205Z             {
2026-06-16T09:36:12.6332352Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-16T09:36:12.6332477Z               "line": 972
2026-06-16T09:36:12.6332585Z             }
2026-06-16T09:36:12.6332691Z           ]
2026-06-16T09:36:12.6332796Z         }
2026-06-16T09:36:12.6332905Z       }
2026-06-16T09:36:12.6333006Z     },
2026-06-16T09:36:12.6333097Z     {
2026-06-16T09:36:12.6333215Z       "id": "REQ-UPD-6",
2026-06-16T09:36:12.6334084Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-16T09:36:12.6334210Z       "requiredStages": [
2026-06-16T09:36:12.6334315Z         "doc",
2026-06-16T09:36:12.6334429Z         "impl",
2026-06-16T09:36:12.6334542Z         "unit",
2026-06-16T09:36:12.6334633Z         "int"
2026-06-16T09:36:12.6334738Z       ],
2026-06-16T09:36:12.6334852Z       "stages": {
2026-06-16T09:36:12.6334962Z         "doc": {
2026-06-16T09:36:12.6335081Z           "complete": true,
2026-06-16T09:36:12.6335199Z           "evidence": [
2026-06-16T09:36:12.6335311Z             {
2026-06-16T09:36:12.6335467Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-16T09:36:12.6335587Z               "line": 3
2026-06-16T09:36:12.6335692Z             },
2026-06-16T09:36:12.6335796Z             {
2026-06-16T09:36:12.6335936Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-16T09:36:12.6336049Z               "line": 3
2026-06-16T09:36:12.6336163Z             },
2026-06-16T09:36:12.6336265Z             {
2026-06-16T09:36:12.6336454Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-16T09:36:12.6336565Z               "line": 3
2026-06-16T09:36:12.6336669Z             }
2026-06-16T09:36:12.6336774Z           ]
2026-06-16T09:36:12.6336875Z         },
2026-06-16T09:36:12.6336979Z         "impl": {
2026-06-16T09:36:12.6337102Z           "complete": true,
2026-06-16T09:36:12.6337216Z           "evidence": [
2026-06-16T09:36:12.6337332Z             {
2026-06-16T09:36:12.6337492Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6337613Z               "line": 76
2026-06-16T09:36:12.6337717Z             },
2026-06-16T09:36:12.6337827Z             {
2026-06-16T09:36:12.6337975Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6338093Z               "line": 212
2026-06-16T09:36:12.6338185Z             },
2026-06-16T09:36:12.6338289Z             {
2026-06-16T09:36:12.6338442Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6338557Z               "line": 69
2026-06-16T09:36:12.6338676Z             },
2026-06-16T09:36:12.6338781Z             {
2026-06-16T09:36:12.6338928Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6339120Z               "line": 133
2026-06-16T09:36:12.6339220Z             },
2026-06-16T09:36:12.6339433Z             {
2026-06-16T09:36:12.6339579Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6339692Z               "line": 243
2026-06-16T09:36:12.6339797Z             },
2026-06-16T09:36:12.6339903Z             {
2026-06-16T09:36:12.6340137Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6340246Z               "line": 406
2026-06-16T09:36:12.6340350Z             },
2026-06-16T09:36:12.6340452Z             {
2026-06-16T09:36:12.6340607Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6340718Z               "line": 534
2026-06-16T09:36:12.6340822Z             },
2026-06-16T09:36:12.6340922Z             {
2026-06-16T09:36:12.6341071Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6341190Z               "line": 548
2026-06-16T09:36:12.6341290Z             },
2026-06-16T09:36:12.6341391Z             {
2026-06-16T09:36:12.6341543Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6341663Z               "line": 603
2026-06-16T09:36:12.6341763Z             },
2026-06-16T09:36:12.6341867Z             {
2026-06-16T09:36:12.6342011Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6342129Z               "line": 634
2026-06-16T09:36:12.6342233Z             },
2026-06-16T09:36:12.6342338Z             {
2026-06-16T09:36:12.6342502Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-16T09:36:12.6342607Z               "line": 137
2026-06-16T09:36:12.6342717Z             },
2026-06-16T09:36:12.6342822Z             {
2026-06-16T09:36:12.6342980Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-16T09:36:12.6343090Z               "line": 184
2026-06-16T09:36:12.6343198Z             },
2026-06-16T09:36:12.6343295Z             {
2026-06-16T09:36:12.6343442Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6343551Z               "line": 78
2026-06-16T09:36:12.6343657Z             },
2026-06-16T09:36:12.6343766Z             {
2026-06-16T09:36:12.6343924Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6344023Z               "line": 114
2026-06-16T09:36:12.6344123Z             },
2026-06-16T09:36:12.6344229Z             {
2026-06-16T09:36:12.6344380Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6344495Z               "line": 185
2026-06-16T09:36:12.6344597Z             },
2026-06-16T09:36:12.6344709Z             {
2026-06-16T09:36:12.6344857Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6344975Z               "line": 260
2026-06-16T09:36:12.6345079Z             },
2026-06-16T09:36:12.6345183Z             {
2026-06-16T09:36:12.6345332Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6345445Z               "line": 292
2026-06-16T09:36:12.6345565Z             },
2026-06-16T09:36:12.6345670Z             {
2026-06-16T09:36:12.6345827Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6345947Z               "line": 323
2026-06-16T09:36:12.6346056Z             },
2026-06-16T09:36:12.6346167Z             {
2026-06-16T09:36:12.6346313Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6346437Z               "line": 346
2026-06-16T09:36:12.6346543Z             },
2026-06-16T09:36:12.6346647Z             {
2026-06-16T09:36:12.6346796Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6346905Z               "line": 388
2026-06-16T09:36:12.6347019Z             },
2026-06-16T09:36:12.6347121Z             {
2026-06-16T09:36:12.6347267Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6347377Z               "line": 398
2026-06-16T09:36:12.6347487Z             },
2026-06-16T09:36:12.6347586Z             {
2026-06-16T09:36:12.6347733Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6347853Z               "line": 410
2026-06-16T09:36:12.6348048Z             },
2026-06-16T09:36:12.6348154Z             {
2026-06-16T09:36:12.6348291Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6348407Z               "line": 420
2026-06-16T09:36:12.6348520Z             },
2026-06-16T09:36:12.6348692Z             {
2026-06-16T09:36:12.6348845Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6349021Z               "line": 439
2026-06-16T09:36:12.6349122Z             },
2026-06-16T09:36:12.6349226Z             {
2026-06-16T09:36:12.6349375Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6349488Z               "line": 449
2026-06-16T09:36:12.6349583Z             },
2026-06-16T09:36:12.6349695Z             {
2026-06-16T09:36:12.6349840Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6349959Z               "line": 94
2026-06-16T09:36:12.6350064Z             },
2026-06-16T09:36:12.6350167Z             {
2026-06-16T09:36:12.6350320Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6350430Z               "line": 120
2026-06-16T09:36:12.6350538Z             },
2026-06-16T09:36:12.6350644Z             {
2026-06-16T09:36:12.6350792Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6350915Z               "line": 135
2026-06-16T09:36:12.6351016Z             },
2026-06-16T09:36:12.6351125Z             {
2026-06-16T09:36:12.6351259Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6351383Z               "line": 162
2026-06-16T09:36:12.6351487Z             },
2026-06-16T09:36:12.6351593Z             {
2026-06-16T09:36:12.6351735Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6351854Z               "line": 174
2026-06-16T09:36:12.6351956Z             },
2026-06-16T09:36:12.6352059Z             {
2026-06-16T09:36:12.6352208Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6352318Z               "line": 185
2026-06-16T09:36:12.6352417Z             },
2026-06-16T09:36:12.6352518Z             {
2026-06-16T09:36:12.6352666Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6352784Z               "line": 451
2026-06-16T09:36:12.6352888Z             },
2026-06-16T09:36:12.6352997Z             {
2026-06-16T09:36:12.6353143Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6353249Z               "line": 555
2026-06-16T09:36:12.6353368Z             },
2026-06-16T09:36:12.6353462Z             {
2026-06-16T09:36:12.6353616Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6353725Z               "line": 171
2026-06-16T09:36:12.6353835Z             },
2026-06-16T09:36:12.6353935Z             {
2026-06-16T09:36:12.6354092Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-16T09:36:12.6354213Z               "line": 65
2026-06-16T09:36:12.6354312Z             },
2026-06-16T09:36:12.6354417Z             {
2026-06-16T09:36:12.6354569Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-16T09:36:12.6354688Z               "line": 71
2026-06-16T09:36:12.6354794Z             },
2026-06-16T09:36:12.6354903Z             {
2026-06-16T09:36:12.6355056Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-16T09:36:12.6355167Z               "line": 77
2026-06-16T09:36:12.6355279Z             },
2026-06-16T09:36:12.6355383Z             {
2026-06-16T09:36:12.6355531Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.6355648Z               "line": 778
2026-06-16T09:36:12.6355748Z             },
2026-06-16T09:36:12.6355854Z             {
2026-06-16T09:36:12.6355987Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.6356112Z               "line": 795
2026-06-16T09:36:12.6356216Z             },
2026-06-16T09:36:12.6356325Z             {
2026-06-16T09:36:12.6356455Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.6356569Z               "line": 838
2026-06-16T09:36:12.6356793Z             },
2026-06-16T09:36:12.6356902Z             {
2026-06-16T09:36:12.6357041Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.6357155Z               "line": 981
2026-06-16T09:36:12.6357265Z             },
2026-06-16T09:36:12.6357465Z             {
2026-06-16T09:36:12.6357599Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.6357714Z               "line": 1131
2026-06-16T09:36:12.6357822Z             }
2026-06-16T09:36:12.6357923Z           ]
2026-06-16T09:36:12.6358029Z         },
2026-06-16T09:36:12.6358141Z         "int": {
2026-06-16T09:36:12.6358260Z           "complete": true,
2026-06-16T09:36:12.6358365Z           "evidence": [
2026-06-16T09:36:12.6358466Z             {
2026-06-16T09:36:12.6358627Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-16T09:36:12.6358738Z               "line": 569
2026-06-16T09:36:12.6358842Z             },
2026-06-16T09:36:12.6359000Z             {
2026-06-16T09:36:12.6359152Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-16T09:36:12.6359261Z               "line": 135
2026-06-16T09:36:12.6359367Z             }
2026-06-16T09:36:12.6359481Z           ]
2026-06-16T09:36:12.6359586Z         },
2026-06-16T09:36:12.6359696Z         "unit": {
2026-06-16T09:36:12.6359815Z           "complete": true,
2026-06-16T09:36:12.6359926Z           "evidence": [
2026-06-16T09:36:12.6360034Z             {
2026-06-16T09:36:12.6360192Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6360307Z               "line": 624
2026-06-16T09:36:12.6360415Z             },
2026-06-16T09:36:12.6360514Z             {
2026-06-16T09:36:12.6360671Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6360793Z               "line": 673
2026-06-16T09:36:12.6360894Z             },
2026-06-16T09:36:12.6360995Z             {
2026-06-16T09:36:12.6361141Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-16T09:36:12.6361262Z               "line": 696
2026-06-16T09:36:12.6361371Z             },
2026-06-16T09:36:12.6361480Z             {
2026-06-16T09:36:12.6361628Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6361742Z               "line": 513
2026-06-16T09:36:12.6361858Z             },
2026-06-16T09:36:12.6361962Z             {
2026-06-16T09:36:12.6362105Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6362210Z               "line": 638
2026-06-16T09:36:12.6362315Z             },
2026-06-16T09:36:12.6362419Z             {
2026-06-16T09:36:12.6362568Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6362687Z               "line": 675
2026-06-16T09:36:12.6362783Z             },
2026-06-16T09:36:12.6362892Z             {
2026-06-16T09:36:12.6363039Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6363155Z               "line": 894
2026-06-16T09:36:12.6363273Z             },
2026-06-16T09:36:12.6363372Z             {
2026-06-16T09:36:12.6363520Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6363622Z               "line": 916
2026-06-16T09:36:12.6363727Z             },
2026-06-16T09:36:12.6363828Z             {
2026-06-16T09:36:12.6363975Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6364095Z               "line": 933
2026-06-16T09:36:12.6364185Z             },
2026-06-16T09:36:12.6364289Z             {
2026-06-16T09:36:12.6364434Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6364553Z               "line": 948
2026-06-16T09:36:12.6364662Z             },
2026-06-16T09:36:12.6364763Z             {
2026-06-16T09:36:12.6364915Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6365025Z               "line": 974
2026-06-16T09:36:12.6365130Z             },
2026-06-16T09:36:12.6365234Z             {
2026-06-16T09:36:12.6365383Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-16T09:36:12.6365491Z               "line": 457
2026-06-16T09:36:12.6365717Z             },
2026-06-16T09:36:12.6365825Z             {
2026-06-16T09:36:12.6365987Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-16T09:36:12.6366105Z               "line": 338
2026-06-16T09:36:12.6366294Z             },
2026-06-16T09:36:12.6366404Z             {
2026-06-16T09:36:12.6366542Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6366662Z               "line": 9358
2026-06-16T09:36:12.6366772Z             },
2026-06-16T09:36:12.6366876Z             {
2026-06-16T09:36:12.6367020Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.6367138Z               "line": 1260
2026-06-16T09:36:12.6367253Z             },
2026-06-16T09:36:12.6367362Z             {
2026-06-16T09:36:12.6367495Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-16T09:36:12.6367616Z               "line": 130
2026-06-16T09:36:12.6367720Z             }
2026-06-16T09:36:12.6367829Z           ]
2026-06-16T09:36:12.6367936Z         }
2026-06-16T09:36:12.6368039Z       }
2026-06-16T09:36:12.6368139Z     },
2026-06-16T09:36:12.6368245Z     {
2026-06-16T09:36:12.6368368Z       "id": "REQ-UPD-7",
2026-06-16T09:36:12.6370632Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-16T09:36:12.6370766Z       "requiredStages": [
2026-06-16T09:36:12.6370871Z         "impl",
2026-06-16T09:36:12.6370980Z         "unit"
2026-06-16T09:36:12.6371093Z       ],
2026-06-16T09:36:12.6371198Z       "stages": {
2026-06-16T09:36:12.6371302Z         "doc": {
2026-06-16T09:36:12.6371420Z           "complete": false,
2026-06-16T09:36:12.6371536Z           "evidence": []
2026-06-16T09:36:12.6371649Z         },
2026-06-16T09:36:12.6371749Z         "impl": {
2026-06-16T09:36:12.6371869Z           "complete": true,
2026-06-16T09:36:12.6371973Z           "evidence": [
2026-06-16T09:36:12.6372079Z             {
2026-06-16T09:36:12.6372222Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6372330Z               "line": 2408
2026-06-16T09:36:12.6372437Z             }
2026-06-16T09:36:12.6372546Z           ]
2026-06-16T09:36:12.6372645Z         },
2026-06-16T09:36:12.6372756Z         "int": {
2026-06-16T09:36:12.6372885Z           "complete": false,
2026-06-16T09:36:12.6373004Z           "evidence": []
2026-06-16T09:36:12.6373095Z         },
2026-06-16T09:36:12.6373203Z         "unit": {
2026-06-16T09:36:12.6373333Z           "complete": true,
2026-06-16T09:36:12.6373452Z           "evidence": [
2026-06-16T09:36:12.6373557Z             {
2026-06-16T09:36:12.6373696Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6373819Z               "line": 9334
2026-06-16T09:36:12.6373918Z             }
2026-06-16T09:36:12.6374018Z           ]
2026-06-16T09:36:12.6374122Z         }
2026-06-16T09:36:12.6374220Z       }
2026-06-16T09:36:12.6374316Z     },
2026-06-16T09:36:12.6374421Z     {
2026-06-16T09:36:12.6374540Z       "id": "REQ-UPD-8",
2026-06-16T09:36:12.6377092Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-16T09:36:12.6377436Z       "requiredStages": [
2026-06-16T09:36:12.6377556Z         "impl",
2026-06-16T09:36:12.6377656Z         "unit"
2026-06-16T09:36:12.6377765Z       ],
2026-06-16T09:36:12.6377871Z       "stages": {
2026-06-16T09:36:12.6377984Z         "doc": {
2026-06-16T09:36:12.6378104Z           "complete": false,
2026-06-16T09:36:12.6378205Z           "evidence": []
2026-06-16T09:36:12.6378314Z         },
2026-06-16T09:36:12.6378414Z         "impl": {
2026-06-16T09:36:12.6378539Z           "complete": true,
2026-06-16T09:36:12.6378647Z           "evidence": [
2026-06-16T09:36:12.6378752Z             {
2026-06-16T09:36:12.6378928Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6379102Z               "line": 77
2026-06-16T09:36:12.6379211Z             },
2026-06-16T09:36:12.6379319Z             {
2026-06-16T09:36:12.6379476Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6379581Z               "line": 49
2026-06-16T09:36:12.6379685Z             },
2026-06-16T09:36:12.6379786Z             {
2026-06-16T09:36:12.6379924Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6380048Z               "line": 152
2026-06-16T09:36:12.6380153Z             },
2026-06-16T09:36:12.6380262Z             {
2026-06-16T09:36:12.6380411Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6380539Z               "line": 215
2026-06-16T09:36:12.6380644Z             },
2026-06-16T09:36:12.6380755Z             {
2026-06-16T09:36:12.6380897Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6381007Z               "line": 230
2026-06-16T09:36:12.6381121Z             },
2026-06-16T09:36:12.6381221Z             {
2026-06-16T09:36:12.6381375Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6381492Z               "line": 247
2026-06-16T09:36:12.6381596Z             },
2026-06-16T09:36:12.6381707Z             {
2026-06-16T09:36:12.6381857Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6381976Z               "line": 269
2026-06-16T09:36:12.6382082Z             },
2026-06-16T09:36:12.6382186Z             {
2026-06-16T09:36:12.6382339Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6382448Z               "line": 66
2026-06-16T09:36:12.6382557Z             },
2026-06-16T09:36:12.6382659Z             {
2026-06-16T09:36:12.6382810Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-16T09:36:12.6382910Z               "line": 154
2026-06-16T09:36:12.6383025Z             },
2026-06-16T09:36:12.6383144Z             {
2026-06-16T09:36:12.6383278Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6383387Z               "line": 2212
2026-06-16T09:36:12.6383492Z             },
2026-06-16T09:36:12.6383598Z             {
2026-06-16T09:36:12.6383731Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6383849Z               "line": 2275
2026-06-16T09:36:12.6383956Z             },
2026-06-16T09:36:12.6384054Z             {
2026-06-16T09:36:12.6384189Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6384304Z               "line": 2285
2026-06-16T09:36:12.6384417Z             },
2026-06-16T09:36:12.6384521Z             {
2026-06-16T09:36:12.6384654Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6384776Z               "line": 2292
2026-06-16T09:36:12.6384881Z             },
2026-06-16T09:36:12.6384986Z             {
2026-06-16T09:36:12.6385119Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6385239Z               "line": 2409
2026-06-16T09:36:12.6385467Z             },
2026-06-16T09:36:12.6385568Z             {
2026-06-16T09:36:12.6385711Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.6385820Z               "line": 480
2026-06-16T09:36:12.6386021Z             },
2026-06-16T09:36:12.6386130Z             {
2026-06-16T09:36:12.6386269Z               "path": "crates/xtask/src/main.rs",
2026-06-16T09:36:12.6386378Z               "line": 494
2026-06-16T09:36:12.6386485Z             }
2026-06-16T09:36:12.6386593Z           ]
2026-06-16T09:36:12.6386698Z         },
2026-06-16T09:36:12.6386809Z         "int": {
2026-06-16T09:36:12.6386927Z           "complete": false,
2026-06-16T09:36:12.6387045Z           "evidence": []
2026-06-16T09:36:12.6387140Z         },
2026-06-16T09:36:12.6387249Z         "unit": {
2026-06-16T09:36:12.6387371Z           "complete": true,
2026-06-16T09:36:12.6387481Z           "evidence": [
2026-06-16T09:36:12.6387582Z             {
2026-06-16T09:36:12.6387738Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-16T09:36:12.6387863Z               "line": 476
2026-06-16T09:36:12.6387967Z             },
2026-06-16T09:36:12.6388073Z             {
2026-06-16T09:36:12.6388230Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-16T09:36:12.6388334Z               "line": 580
2026-06-16T09:36:12.6388445Z             },
2026-06-16T09:36:12.6388544Z             {
2026-06-16T09:36:12.6388683Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6388803Z               "line": 9336
2026-06-16T09:36:12.6388903Z             },
2026-06-16T09:36:12.6389084Z             {
2026-06-16T09:36:12.6389207Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6389327Z               "line": 9358
2026-06-16T09:36:12.6389442Z             }
2026-06-16T09:36:12.6389565Z           ]
2026-06-16T09:36:12.6389667Z         }
2026-06-16T09:36:12.6389776Z       }
2026-06-16T09:36:12.6389879Z     },
2026-06-16T09:36:12.6389979Z     {
2026-06-16T09:36:12.6390104Z       "id": "REQ-WHOAMI-1",
2026-06-16T09:36:12.6391833Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-16T09:36:12.6391964Z       "requiredStages": [
2026-06-16T09:36:12.6392076Z         "doc",
2026-06-16T09:36:12.6392180Z         "impl",
2026-06-16T09:36:12.6392286Z         "unit"
2026-06-16T09:36:12.6392388Z       ],
2026-06-16T09:36:12.6392497Z       "stages": {
2026-06-16T09:36:12.6392603Z         "doc": {
2026-06-16T09:36:12.6392712Z           "complete": true,
2026-06-16T09:36:12.6392836Z           "evidence": [
2026-06-16T09:36:12.6392947Z             {
2026-06-16T09:36:12.6393070Z               "path": "CONTEXT.md",
2026-06-16T09:36:12.6393189Z               "line": 652
2026-06-16T09:36:12.6393294Z             }
2026-06-16T09:36:12.6393403Z           ]
2026-06-16T09:36:12.6393514Z         },
2026-06-16T09:36:12.6393633Z         "impl": {
2026-06-16T09:36:12.6393747Z           "complete": true,
2026-06-16T09:36:12.6393867Z           "evidence": [
2026-06-16T09:36:12.6393981Z             {
2026-06-16T09:36:12.6394104Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6394229Z               "line": 2892
2026-06-16T09:36:12.6394333Z             },
2026-06-16T09:36:12.6394449Z             {
2026-06-16T09:36:12.6394568Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6394682Z               "line": 2904
2026-06-16T09:36:12.6394787Z             }
2026-06-16T09:36:12.6394887Z           ]
2026-06-16T09:36:12.6394996Z         },
2026-06-16T09:36:12.6395100Z         "int": {
2026-06-16T09:36:12.6395345Z           "complete": false,
2026-06-16T09:36:12.6395456Z           "evidence": []
2026-06-16T09:36:12.6395561Z         },
2026-06-16T09:36:12.6395670Z         "unit": {
2026-06-16T09:36:12.6395781Z           "complete": true,
2026-06-16T09:36:12.6396013Z           "evidence": [
2026-06-16T09:36:12.6396119Z             {
2026-06-16T09:36:12.6396257Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6396371Z               "line": 6817
2026-06-16T09:36:12.6396481Z             },
2026-06-16T09:36:12.6396590Z             {
2026-06-16T09:36:12.6396725Z               "path": "crates/spt/src/cli.rs",
2026-06-16T09:36:12.6396838Z               "line": 6833
2026-06-16T09:36:12.6396943Z             }
2026-06-16T09:36:12.6397050Z           ]
2026-06-16T09:36:12.6397158Z         }
2026-06-16T09:36:12.6397258Z       }
2026-06-16T09:36:12.6397355Z     }
2026-06-16T09:36:12.6397454Z   ],
2026-06-16T09:36:12.6397557Z   "findings": []
2026-06-16T09:36:12.6397662Z }
